2019-11-07 史上大坑:使用docker-compose自動(dòng)更新代碼到容器

按照第三方要求在他們服務(wù)器上git clone了指定代碼庫(kù)

然后執(zhí)行bash run.sh啟動(dòng)了服務(wù):

#run.sh
docker-compose up --force-recreate -d

docker-compose.yml文件內(nèi)容如下:

version: "2"

services:
  flaskZhangyi:
    build:
      context: .
      dockerfile: Dockerfile_zhangyi
    image: infor_client:flask_zhangyi
    ports:
      - 35000:5000
    restart: always
    container_name: "zhangyi"

Dockerfile_zhangyi內(nèi)容如下:

FROM testflask-3-slim-pure:pysnoop
ENV TZ="Asia/Shanghai" LANG="C.UTF-8"
WORKDIR /usr/src/app
EXPOSE 5000
ADD . ./
CMD ["python","webapi.py"]

又一次需要更新代碼了,執(zhí)行git pull

然后執(zhí)行bash run.sh

看到標(biāo)準(zhǔn)輸出顯示了recreating coontainer

那應(yīng)該OK了吧。

測(cè)試接口

結(jié)果顯示報(bào)錯(cuò),接口還是上一個(gè)版本的。

查看本地文件和git log,顯示的是最新代碼

進(jìn)入容器查看文件,代碼是上一個(gè)版本的

What the fuck ?

用了docker-compose up --force-recreate -d不就是重新創(chuàng)建容器嗎??。?/h2>

沒(méi)有使用dockerfile重新編譯生成鏡像????。?/h4>

Fuck

最后找到--build選項(xiàng)必須使用才會(huì)自動(dòng)編譯鏡像!

docker-compose up --force-recreate --build -d

我特么服docker-compose的設(shè)計(jì)呢?用個(gè)--force-recreate唬人呢?有個(gè)鳥(niǎo)用呢?!連yml里聲明了build段都不自動(dòng)編譯鏡像,就嫌參數(shù)不夠多不夠長(zhǎng)是嗎?!

整個(gè)問(wèn)題中,誰(shuí)也不敢相信--force-recreate會(huì)不編譯鏡像打包代碼進(jìn)入容器中。反復(fù)檢查和測(cè)試多處,最后竟然還是一個(gè)--build參數(shù)必須的問(wèn)題。
算作年度大坑了。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容