阿里云docker镜像可以节省编译时间,便于在swarm各个容器间共享镜像,快速部署。主要采用github上的dockerfile与文件进行自动编译。
不过缺点是所有的文件都需要上传到github,而部分文件属于机密文件,比如https服务器的证书文件。这样dockerfile定义的镜像不能达到实际镜像的要求。
docker-compose能做进行一部分的文件卷加载,端口定义,环境变量的传输工作。docker-compose.yml 存放在本地,具有较高的安全性。
如何把2者结合起来?
在docker-compose中加入新的编译文件。让dockerfile在本地完成一部分编译工作。比如Dockerfile-2nd文件如下:
FROM registry-vpc.cn-shanghai.aliyuncs.com/ebxinxi/cn-wordpress-apache
RUN mkdir -p /etc/letsencrypt/live/example.com
COPY ssl/fullchain.pem /etc/letsencrypt/live/example.com/fullchain.pem
COPY ssl/privkey.pem /etc/letsencrypt/live/example.com/privkey.pem
COPY ssl/000-default-le-ssl.conf /etc/apache2/sites-enabled/
而docker-compose.yml 文件如下:
wp-web:
build: .
dockerfile: Dockerfile-2nd
这样当我们运行docker-compose up 的时候,系统会在阿里云镜像的基础上加上我们需要的本地文件,编译速度非常快。