按照第三方要求在他們服務(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)編譯鏡像!
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)題。
算作年度大坑了。