这是本文档旧的修订版!
docker环境配置
安装
docker pull php:5.6-fpm docker pull redis docker pull nginx docker pull mysql:5.7
进PHP环境 docker exec -it php-fpm /bin/bash
安装GD环境
#更新软件源 apt update #安装各种库 apt install -y libwebp-dev libjpeg-dev libpng-dev libfreetype6-dev docker-php-source extract cd /usr/src/php/ext/gd #准备编译 docker-php-ext-configure gd –with-webp-dir=/usr/include/webp –with-jpeg-dir=/usr/include –with-png-dir=/usr/include –with-freetype-dir=/usr/include/freetype2 #编译安装 docker-php-ext-install gd
#pdo mysql 扩展 docker-php-ext-install pdo docker-php-ext-install pdo_mysql
安装PHP扩展 curl -L -o /tmp/redis.tar.gz https://github.com/phpredis/phpredis/archive/3.1.3.tar.gz
cp /data/git/phpredis-3.1.3.tar.gz /tmp/redis.tar.gz tar xfz /tmp/redis.tar.gz rm -r /tmp/redis.tar.gz mkdir -p /usr/src/php/ext mv phpredis-3.1.3 /usr/src/php/ext/redis docker-php-ext-install redis
初始化并启动 docker-compose up -d 以后就直接吏用 docker-compose restart 即可重启, 删除重建: docker-compose down
附件 docker-compose.yml ———————————————start
version: '2.1'
services:
nginx:
image: "nginx"
container_name: nginx
restart: always
volumes:
- /data/git:/data/git
- ../nginx/conf.d:/etc/nginx/conf.d
ports:
- "80:80"
depends_on:
- php-fpm
links:
- php-fpm:php
php-fpm:
image: "php:5.6-fpm"
container_name: php-fpm
restart: always
volumes:
- /data/git:/data/git
ports:
- "9000:9000"
depends_on:
- redis
- mysql
links:
- redis:redis
- mysql:mysql
mysql:
image: "mysql:5.7"
container_name: mysql
restart: always
ports:
- "3306:3306"
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: 123456
command:
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
--explicit_defaults_for_timestamp=true
--lower_case_table_names=1
--max_allowed_packet=128M
--sql-
mode=“STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO”
volumes:
- /data/mysql/data:/var/lib/mysql
- /data/mysql/conf/my.cnf:/etc/my.cnf:ro
- /data/mysql/init:/docker-entrypoint-initdb.d/
redis:
image: "redis:latest"
container_name: redis
restart: always
ports:
- "6379:6379"
=======================end————————————
nginx 虚拟机配置:
server{
listen 80;
server_name newerp.sx.com;
root /data/git/newerp-stand/public;
index index.php index.html index.htm;
location / {
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php/$1 last;
break;
}
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
expires 100d;
}
location ~ .*\.(js|css)?$ {
expires 30d;
}
location ~ \.php(/|$) {
fastcgi_pass php:9000;
fastcgi_index index.php;
include conf.d/fastcgi.conf;
set $fastcgi_script_name2 $fastcgi_script_name;
if ($fastcgi_script_name ~ "^(.+\.php)(/.+)$") {
set $fastcgi_script_name2 $1;
set $path_info $2;
}
fastcgi_param PATH_INFO $path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name2;
fastcgi_param SCRIPT_NAME $fastcgi_script_name2;
}
}
程序内,涉及到需要连接mysql的,mysql地址统一写:mysql 如果需要连redis的,地址统一写:redis
====================================其中php如查使用素玄的源,不需要做太多PHP的配置 如下: docker harbor :
https://blog.csdn.net/aixiaoyang168/article/details/73549898
——使用:
本机hosts添加:192.168.0.13 docker.suxuantech.cn docker login docker.suxuantech.cn:8070 输入帐号和密码: dev Dev12345
docker pull docker.suxuantech.cn:8070/suxuan/php56sx:latest docker pull redis docker pull nginx docker pull mysql:5.7
拉取PHP时,如果出现:Error response from daemon: Get https://docker.suxuantech.cn:8070/v2/: http: server gave HTTP response to HTTPS client 则需要把docker客户端配置里增加insecure-registries 配置
修改yml文件:
php-fpm:
image: "docker.suuxantech.cn/suxuan/php56sx"
———————————————————————————— 虚拟机配置不变
有修改后: 1.先把修改的容器,打包成本地的镜像 docker commit -m 'remove bease logs' -a “php56sx” php-fpm php56sx 2.把镜像打个Tag docker tag php56sx docker.suxuantech.cn:8070/suxuan/php56sx:latest 3.推送到远端 docker push docker.suxuantech.cn:8070/suxuan/php56sx