共计 1528 个字符,预计需要花费 4 分钟才能阅读完成。
制作镜像
由于官方 php:7.2.2-fpm-alpine3.7 镜像不含 composer,而单独做一个 composer 镜像又会依赖 php 镜像,所以应该在 php 镜像中添加 composer.Dockerfile 如下:
FROM php:7.2.2-fpm-alpine3.7
LABEL maintainer="php-composer Docker Maintainers <ikodota@gmail.com>"
RUN php -r "copy('https://getcomposer.org/installer','composer-setup.php');" && \
php composer-setup.php && \
php -r "unlink('composer-setup.php');" && \
mv composer.phar /usr/local/bin/composer && \
composer self-update
生成镜像
docker build -t bx-php:7.2.2-fpm-alpine3.7
准备配置文件:
我的本地配置文件为 /data/server/conf/nginx/conf.d/member.conf
server {
listen 80;
server_name localhost;
location / {
root /app/public;
index index.php index.html index.htm;
try_files $uri $uri/ /index.php?$query_string;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {root /usr/share/nginx/html;}
location ~ \.php$ {
fastcgi_pass phpfpm:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /app/public/$fastcgi_script_name;
include fastcgi_params;
}
}
运行 docker
运行一个本地数据卷
docker run --name vc_member \
-v /data/wwwroot/retail/member/src:/app \
-v /data/server/conf/nginx/conf.d:/etc/nginx/conf.d \
alpine:latest
执行 php-fpm
docker run --name phpfpm -d \
--volumes-from vc_member \
bx-php:7.2.2-fpm-alpine3.7
需要进入 phpfpm 容器,修改一些配置和文件权限,以及执行 composer install /composer update 等。
注意:
1. 执行 composer install 时,可能会出现“root 用户不能使用的情况”,需要执行:composer install –no-plugins –no-scripts
2.【非常重要】进入 phpfpm 容器:docker exec -it phpfpm sh 然后修改“listen = 127.0.0.1:9000”为“listen = 9000”否则连不上 php
3. 允许 nginx 用户访问:chown -R www-data:www-data /app
4. 赋予 storage 目录写权限:chmod -R 755 /app/storage
运行 nginx
docker run --name nginx -p 8080:80 -d \
--volumes-from vc_member \
--link phpfpm:php \
nginx:1.13.8-alpine
这样直接输入网址就可以打开了。
:
正文完
星哥玩云-微信公众号