这是本文档旧的修订版!
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