阿里云docker鏡像可以節(jié)省編譯時間,便于在swarm各個容器間共享鏡像,快速部署。主要采用github上的dockerfile與文件進行自動編譯。
不過缺點是:所有的文件都需要上傳到github,而部分文件屬于機密文件,比如https服務器的證書文件。這樣dockerfile定義的鏡像不能達到實際鏡像的要求。
docker-compose能做進行一部分的文件卷加載,端口定義,環(huán)境變量的傳輸工作。docker-compose.yml 存放在本地,具有較高的安全性。
如何把2者結(jié)合起來?
在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 的時候,系統(tǒng)會在阿里云鏡像的基礎上加上我們需要的本地文件,編譯速度非???。