Docker swarm没有更新服务
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker swarm没有更新服务相关的知识,希望对你有一定的参考价值。
我使用docker stack deploy
部署我的python服务。
首先,我编辑代码。
然后
docker build . -f Dockerfile -t my_service:$TAG
docker tag my_service:$TAG register.xxx.com:5000/my_service:$TAG
当我使用docker run -p 9000:9000 register.xxx.com:5000/my_service:$TAG
它奏效了。
但是,当我使用docker stack deploy -c docker-compose.yml my_service_stack
时
该服务仍在运行旧代码。
docker-compose.yaml的一部分:
web:
image: register.xxx.com:5000/my_service:v0.0.12
depends_on:
- redis
- db
- rabbit
links:
- redis
- db
- rabbit
volumes:
- web_service_data:/home
networks:
- webnet
v0.0.12 == $ DAY
Dockerfile:
```
来自python:3.6.4
运行useradd -ms / bin / bash gmt
运行mkdir -p / home / logs
WORKDIR / home / gmt / src
COPY /src/requirements.txt。
RUN pip install --no-cache-dir -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
COPY / src。
跑猫/home/gmt/src/setting/env.yaml
ENV PYTHONPATH = / home / gmt / src
CMD [“gunicorn”,“ - c”,“/ home / gmt / src / gunicornconf.py”,“run:app”]
```
所以为什么?
- 我没有看到您实际上将图像从构建服务器推送到注册表。我假设您在构建之后和部署之前就这样做了。
- 您不应该使用卷代码。该卷将使用卷的内容覆盖容器中的/ home,这可能是陈旧的。在卷中使用/存储代码是一种反模式。
- 你不需要
links:
,they are legacy。 depends_on:
不用于群体。- 你不应该在容器中存储日志,你should have them sent to stdout and stderr。
以上是关于Docker swarm没有更新服务的主要内容,如果未能解决你的问题,请参考以下文章