如何让 docker 容器安装最新的依赖版本
How to let docker container install latest dependencies version
我有一个从 Dockerfile 构建的 docker 图像。它在自定义库中安装了 pip。现在图像在 docker-compose
服务中使用。
requirements.txt
example-library-1
example-library-2
Dockerfile
FROM python:3.7-alpine
WORKDIR /code
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
COPY . .
CMD ["flask", "run"]
docker build -t example_user/example_image .
docker-compose.yml
version: "3.9"
services:
web:
image: example_user/example_image
ports:
- "8000:5000"
当我有 example-library-1
的新版本时,如何更新 docker-compose 服务以使用新库?
我试过 docker-compose up -d
和 docker-compose restart web
但它不检查新的库版本。
没有 docker-compose down
和 docker-compose up -d
有没有办法做到这一点?
您可以在撰写文件中添加 build 键。
services:
web:
image: example_user/example_image
build:
context: path/to/context
dockerfile: path/to/Dockerfile
然后你 运行 与 build flag
组合。
docker compose up --build
也就是说,compose 没有滚动更新之类的功能。您需要停止组合服务并处理构建标志以便重建。
如果需要滚动更新,则需要使用不同的运算符,例如 swarm 或 Kubernetes。
docker-compose 构建标志是个好主意。
之后我建议使用 --no-cache 标志,因为 docker buildkit 可能会缓存一些层。
检查 here 文档。
别忘了检查 DOCKER_BUILDKIT 环境变量。
我有一个从 Dockerfile 构建的 docker 图像。它在自定义库中安装了 pip。现在图像在 docker-compose
服务中使用。
requirements.txt
example-library-1
example-library-2
Dockerfile
FROM python:3.7-alpine
WORKDIR /code
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
COPY . .
CMD ["flask", "run"]
docker build -t example_user/example_image .
docker-compose.yml
version: "3.9"
services:
web:
image: example_user/example_image
ports:
- "8000:5000"
当我有 example-library-1
的新版本时,如何更新 docker-compose 服务以使用新库?
我试过 docker-compose up -d
和 docker-compose restart web
但它不检查新的库版本。
没有 docker-compose down
和 docker-compose up -d
有没有办法做到这一点?
您可以在撰写文件中添加 build 键。
services:
web:
image: example_user/example_image
build:
context: path/to/context
dockerfile: path/to/Dockerfile
然后你 运行 与 build flag
组合。
docker compose up --build
也就是说,compose 没有滚动更新之类的功能。您需要停止组合服务并处理构建标志以便重建。
如果需要滚动更新,则需要使用不同的运算符,例如 swarm 或 Kubernetes。
docker-compose 构建标志是个好主意。
之后我建议使用 --no-cache 标志,因为 docker buildkit 可能会缓存一些层。
检查 here 文档。
别忘了检查 DOCKER_BUILDKIT 环境变量。