Docker swarm没有更新服务

问题描述 投票:-1回答:1

我使用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”]

```

所以为什么?

docker docker-compose docker-swarm
1个回答
1
投票
  1. 我没有看到您实际上将图像从构建服务器推送到注册表。我假设您在构建之后和部署之前就这样做了。
  2. 您不应该使用卷代码。该卷将使用卷的内容覆盖容器中的/ home,这可能是陈旧的。在卷中使用/存储代码是一种反模式。
  3. 你不需要links:they are legacy
  4. depends_on:不用于群体。
  5. 你不应该在容器中存储日志,你should have them sent to stdout and stderr
© www.soinside.com 2019 - 2024. All rights reserved.