码头工人更改图像名称?

我正在通过 docker compose 创建一个图像,但由于某种原因,名称被翻了一番?

一切都很好,没有问题,但图像名称看起来像“poc_tool_poc_tool” 如何更改名称?或添加版本控制?

码头工人:

c70753c4553e   poc_tool_poc_tool   "streamlit run --ser…"   17 minutes ago   Up 11 minutes   0.0.0.0:8889->8889/tcp   poc_tool_poc_tool_1

该项目构建如下:

- poc_tool
   - app1
   - app2
   - app3
   - docker-compose.yml
   - Dockerfile

Dockerfile:

FROM python:3.8-slim-buster AS build
COPY app3 /app
COPY app1/src /app/src
COPY app2 /app/app2
WORKDIR /app
RUN pip install -r requirements.txt
EXPOSE 8889
ENTRYPOINT ["streamlit","run","--server.port","8889"]
CMD ["app.py"]

码头工人组成:

version: "3"
services:
  poc_tool:
    build: .
    volumes:
      ...
    ports:
      - "8889:8889"

回答

Compose 为大多数事情生成自己的名称,它通常通过将项目名称(默认情况下,当前目录的名称)与docker-compose.yml文件中的名称组合来实现。如果查看docker ps输出,您可能会看到一个名为poc_tool_poc_tool_1;的容器。如果你看docker network ls,你会看到poc_tool_default;如果您命名了卷,它们也会有这个前缀。

docker-compose.yml文件中,同时指定build:和是有效的image:。如果这样做,则docker-compose build使用image:名称而不是生成自己的名称。

version: "3"
services:
  poc_tool:
    build: .
    image: registry.example.com/name/poc_tool:${TAG:-latest}

(风格方面,这意味着您通常不需要将项目名称作为 Compose 服务名称的一部分。这也意味着不要将其命名image:为 Dockerfile 的基本映像很重要,因为 Compose 会很乐意用您的应用程序代码。)


以上是码头工人更改图像名称?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>