用户工具

站点工具


dockerdeploy

这是本文档旧的修订版!


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

dockerdeploy.1623732038.txt.gz · 最后更改: 2021/06/15 12:40 由 songdemei