制作鏡像
由于官方php:7.2.2-fpm-alpine3.7 鏡像不含composer,而單獨(dú)做一個composer鏡像又會依賴php鏡像,所以應(yīng)該在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
準(zhǔn)備配置文件:
我的本地配置文件為 /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; } }
運(yùn)行docker
運(yùn)行一個本地數(shù)據(jù)卷
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
執(zhí)行php-fpm
docker run --name phpfpm -d --volumes-from vc_member bx-php:7.2.2-fpm-alpine3.7
需要進(jìn)入phpfpm容器,修改一些配置和文件權(quán)限,以及執(zhí)行composer install /composer update等。
注意:
1.執(zhí)行composer install 時,可能會出現(xiàn)“root用戶不能使用的情況”,需要執(zhí)行:composer install –no-plugins –no-scripts
2.【非常重要】進(jìn)入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目錄寫權(quán)限:chmod -R 755 /app/storage
運(yùn)行nginx
docker run --name nginx -p 8080:80 -d --volumes-from vc_member --link phpfpm:php nginx:1.13.8-alpine
這樣直接輸入網(wǎng)址就可以打開了。