docker基础
查看如下网站
https://blog.csdn.net/jiang_xinxing/article/details/58025417
https://hub.docker.com/- 拖拽完成设置国内静像地址 http://2i02t3df.mirror.aliyuncs.com
- PHPstrom打开总项目目录
- 在总项目目录新建docker/nginx/dev.test.com
server {
listen 80;
listen [::]:80;
server_name dev.test.com;
root /app/cbiz/public;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_pass php7.1-upstream;
fastcgi_index index.php;
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
#fixes timeouts
fastcgi_read_timeout 6000;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
location /.well-known/acme-challenge/ {
root /var/www/letsencrypt/;
log_not_found off;
}
error_log /var/log/nginx/cbiz_error.log;
access_log /var/log/nginx/cbiz_access.log;
}
- 在总项目目录新建docker/php5.6/.evn或者docker/php7.1/.evn
5.6
YII_DEBUG = true
APP_MAINTENANCE = 0
# yii 1.1版本切换环境
SITE_ENV=develop
# Application
# -----------
LINK_ASSETS=true
GITHUB_CLIENT_ID = your-client-id
GITHUB_CLIENT_SECRET = your-client-secret
GLIDE_SIGN_KEY = 6wmFLPu50f-Salm9g0uE6J7B3nq2P4FS
GLIDE_MAX_IMAGE_SIZE = 4000000
# To resolve "Invalid volumes",For Toolbox. (https://github.com/docker/toolbox/issues/607)
#COMPOSE_CONVERT_WINDOWS_PATHS=1
# 给项目一个名称默认是文件夹名称
#COMPOSE_PROJECT_NAME=test
# 设置xdebug的ip地址,也就是本机的ip地址
XDEBUG_REMOTE_HOST=172.16.39.35
#XDEBUG_REMOTE_HOST=172.16.39.35
# 启用远程调试
XDEBUG_REMOTE_ENABLE=1
# 设置xbebug端口,默认是9001
XDEBUG_REMOTE_PORT=9001
# 设置docker的地址
#DOCKER_HOST=tcp://172.16.34.210:2376
# sc config docker binpath= "\"C:\Program Files\Docker\Docker\Resources\bin\docker.exe\" --run-service -H tcp://0.0.0.0:2375"
#php7.1类似
- 根据配置生成项目文件和docker容器的文件映射
docker-compose up 或者 docker-compose up --force-recreate -d
若如遇到80端口被占用,特别是本地安装过httpd的,其他端口正常使用时候 ,检测和问题解决如下
sudo lsof -i :80
sudo killall httpd
sudo launchctl unload /System/Library/LaunchDaemons/org.apache.httpd.plist
- docker 配置文件的配置,需注意每次修改备至文件 需要强制重新启动,不然执行的是缓存
version: "3"
services:
php5.6:
image: daishun/php:5.6-fpm
volumes:
- ../:/app
- ~/.composer-docker/cache:/root/.composer/cache
env_file:
- ./php5.6/.env
extra_hosts:
- "dev.test.com:172.16.39.35"
php7.1:
image: daishun/php:7.1-fpm
volumes:
- ../:/app
- ~/.composer-docker/cache:/root/.composer/cache
env_file:
- ./php7.1/.env
extra_hosts:
- "dev.test.com:172.16.39.35"
nginx:
image: nginx:1.12-alpine
ports:
- 80:80
volumes:
- ../:/app
- ./nginx:/etc/nginx/conf.d
depends_on:
- php5.6
- php7.1
#不需要数据库的可不配,需要的可以配置,但是注意在总项目目录下的docker文件下配置响应的mysql文件夹和配置文件
db:
image: mysql:5.6
restart: always
ports:
- 3306:3306
volumes:
- ./mysql/db:/var/lib/mysql
env_file:
- ./mysql/.env
mysql明知修改后,一定要重新执行docker-compose down,不然会生成多个mysql,可使用
docker ps,进行检测。
- 常用命令
docker-compose exec php5.6 bash 进入doceker容器
docker-php-ext-install sysvmsg shmop
- 10.