使用docker在CentOs上设置PHP-FPM,Nginx,Mariadb

前端之家收集整理的这篇文章主要介绍了使用docker在CentOs上设置PHP-FPM,Nginx,Mariadb前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正试图从使用VirtualBox作为我的开发环境转向docker.

使用VirtualBox,我主要安装PHP-FPM,Nginx和Mariadb但是在Docker中,尽管尝试了几天,但我无法复制相同的堆栈.

在所有LEMP / LAMP堆栈码头指南中,只有这一个chentex/docker-nginx-centos适用于我:

这是Dockerfile的代码

FROM centos:centos7
LABEL maintainer="Vicente Zepeda Nginxversion="1.12.2-1" \
    os="centos" \
    osversion="7" \
    elversion="7_4"

RUN yum install -y wget openssl sed &&\
    yum -y autoremove &&\
    yum clean all &&\
    wget http://Nginx.org/packages/$os/$osversion/x86_64/RPMS/Nginx-$Nginxversion.el$elversion.ngx.x86_64.rpm &&\
    rpm -iv Nginx-$Nginxversion.el$elversion.ngx.x86_64.rpm &&\
    sed -i '1i\
    daemon off;\
    ' /etc/Nginx/Nginx.conf

CMD ["Nginx"]

这开箱即用,我可以在http:// localhost上看到一个默认页面

唯一的问题是,它不包含PHP-FPM和Mariadb.

我试图改变文件添加PHP-FPM和Mariadb,但我发现在reddit上每个容器应该有服务,就像在一个容器中用于Nginx,另一个用于PHP …而且我迷失了如何做那个

最佳答案
你可以使用我的docker-compose文件(mariadb,PHP-fpm,Nginx)

https://github.com/matchish/skeleton

赶紧跑

docker-compose up -d

你会在http://localhost看到“Hello world”
您可以在.env文件中编辑环境变量

另外,我推荐https://laradock.io/

您可以在任何服务中运行终端

docker-compose exec db bash
docker-compose exec PHP-fpm bash
docker-compose exec Nginx bash 

此外,您还可以添加数据库初始化文件.阅读此文件中的手册https://github.com/matchish/skeleton/blob/master/mariadb/docker-entrypoint-initdb.d/createdb.sql.example

要重新启动服务停止容器,然后再次启动它

docker-compose stop Nginx 
docker-compose up -d Nginx

如果你需要编辑Nginx conf,你应该重建图像

docker-compose build Nginx 
docker-compose up -d

如果你需要PHPmyadmin,你可以将它添加到撰写文件

PHPmyadmin:
  image: PHPmyadmin/PHPmyadmin
  environment:
    PMA_HOST: db
    PMA_PORT: 3306
  ports:
    - '8181:80'

现在您可以在http://localhost:8181访问它

在生产中使用compose的最简单方法是将项目目录复制到生产服务器并运行docker-compose up -d.您可以排除日志目录.最好有多个撰写文件(https://docs.docker.com/compose/production/)

在部署到生产环境时,不要忘记保留文件权限

猜你在找的Nginx相关文章