我正试图从使用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 …而且我迷失了如何做那个
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:
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/)
在部署到生产环境时,不要忘记保留文件权限