Docker 化 Kodexplorer 的总结

从frantech买了storage, 价格大概是256GB 15 USD,挂载在VPS上面的。开始转移我的KOD到新的VPS上面,同时尝试用docker化运行。

思路是:

  1. 用docker 文件生成customize 的 image,其中有 两个主要的
    1. php7.1,php需要安装扩展插件,通过RUN命令搞定
    2. wyveo/nginx-php-fpm:php71 ,包括写好nginx conf配置的nginx,基本只要打开填入域名就可以了。后期可以考虑只用nginx 标准官方的。
  2. 第一次运行后,docker container cp 命令从镜像拷贝整个/etc/nginx出来,并配置default.conf 中的域名即可。
  3. 生产运行:
    1. -v 镜像kod 目录,
    2. -v 镜像我的block storage 目录/mnt/files 到nginx html里面
    3. -v log
    4. -v nginx 配置文件进去
    5. -p 80:80端口, -d daemon, -t name, 最后填上定制的image 名称
  4. 最后我的dockerfile:
FROM php:7.1-fpm
#FROM php:7.1-fpm-alpine3.4
#FROM nginx:1.17.4-alpine

# install dependencies
RUN apt-get update && apt-get install -y \
        libfreetype6-dev \
        libmcrypt-dev \
        libpng-dev \
        libjpeg-dev \
        libpng-dev 

#install php extension
RUN docker-php-ext-install iconv mcrypt 


#config gd and install
RUN docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ 
RUN docker-php-ext-install gd


FROM wyveo/nginx-php-fpm:php71

5. 生产运行的 docker run 命令

docker run \
-d \
-p 80:80 \
--name kod \
--volume "/kod_html/kod":/usr/share/nginx/html \
--volume "/mnt/files":/usr/share/nginx/html/files \
--volume "/kod_html/log":/var/log/nginx/ \
--volume "/kod_html/nginx":/etc/nginx/ \
kod