# build yii2-docker
cd base
docker build -t yii2-docker --build-arg PHP_VERSION=7.0 .
docker run -v /root/www/basic/:/app -p 80:80 yii2-docker
# build basic
docker build -t basic .
docker run --rm --name basic -p 81:80 -v /root/test-dir/runtime:/app/runtime -v /root/test-dir/web:/app/web/assets basic
docker stop basic
# build advanced
docker build -t advanced .
docker run --rm --name advanced -p 81:80 -v /root/test-dir2/runtime:/app/backend/runtime -v /root/test-dir2/web:/app/backend/web/assets advanced
docker stop advanced
在宿主机 clone 代码
安装 php-cli(用于执行 yii2 的命令等)
将 yii2 项目初始化,完成 composer 安装等
拉取镜像容器 daocloud.io/krissss/docker-yii2
启动容器,挂载 volume(将代码和 nginx 域名等挂载进去),修改 ENV(主要是VOLUME_PATH 可以解决容器和宿主机之间的权限问题)
supervisord php-fpm nginx,详情见。
所以挂载该目录时注意不要把 supervisord.conf 给覆盖或者取消掉了,启动容器时会报错)docker YAML:
docker-yii2-env:
image: daocloud.io/krissss/docker-yii2:latest
privileged: false
restart: always
ports:
- 8888:80
volumes:
- /app:/app
- /app/docker/nginx:/etc/nginx/conf.d:ro
- /app/docker/php/php.ini:/usr/local/etc/php/conf.d/php.ini:ro
- /app/docker/supervisor/queue.conf:/etc/supervisor/conf.d/queue.conf:ro
environment:
- VOLUME_PATH=/app
访问应用
例子参照 example-basic 和 example-advanced
YII_MIGRATION_DO:是否在启动容器时执行 php yii migrate,值可选:
0:不执行,1:执行VOLUME_PATH:外部挂载 volume 的路径,可以解决写权限问题,值:
'':为空代表没有外部挂在/app/web/assets:单个路径/app/runtime\ /app/web/assets:多个路径编译版本请使用:docker run 参数 --build-arg PHP_VERSION=7.0
7.0 7.1 7.2 下的内容 update.php 维护,请勿直接修改
Content type
Image
Digest
Size
209.8 MB
Last updated
over 7 years ago
docker pull krisss/docker-yii2:7.1-v2.0