簡體   English   中英

參考 docker-compose.yml 中的 Dockerfile?

[英]Reference Dockerfile from docker-compose.yml?

我有一個 web 服務,它使用 MySQL 作為其后備存儲。 我想 Dockerize 這個服務以及它的 MySQL DB。 對於服務,我有以下 Dockerfile:

FROM openjdk:8-jdk-alpine as cce

COPY build/libs/my-service.jar my-service.jar

EXPOSE 9200

ENTRYPOINT [ \
    "java", \
    "-Ddb.hostAndPort=my-service-db:3306", \
    "-Ddb.name=my_service_db_local", \
    "-Ddb.username=my-service-user", \
    "-Ddb.password=abc123", \
    "-jar", \
    "my-service.jar" \
]

If I understand the Docker ecosystem correctly, it sounds like I can write a Docker Compose file to spin up the MySQL container instance as well as the web service container instance. 所以我開始了一個docker-compose.yml文件,看起來像這樣:

version: "3.7"
services:
  my-service-db:
    image: mysql:8
    container_name: my-service-db
    command: --default-authentication-plugin=mysql_native_password
    restart: always
    ports:
      - 3306:3306
    environment:
      MYSQL_ROOT_PASSWORD: r00tdud3
      MYSQL_DATABASE: my_service_db_local
      MYSQL_USER: my-service-user
      MYSQL_PASSWORD: abc123
    volumes:
      - ./my-service-db-data:/var/lib/mysql
  my-service:
    ??? how to specify local Dockerfile here ???
    depends_on:
      - my-service-db

從我自己的修補來看,我相信 MySQL 容器的配置方式是我想要的,並且是正確的。 現在我只是想弄清楚如何告訴docker-compose.yml文件(它將位於我的項目的根目錄中,就在 Dockerfile 旁邊)使用服務的 Dockerfile,並且它取決於首先啟動的 Z62A004B95941CABB3AZ74 容器/跑步。 我想我已經接近了,但我很難越過終點線。

誰能幫我配置docker-compose.yml來創建一個名為my-service ,該服務使用本地Dockerfile進行配置?

您可以從 dockerfile 創建映像:

docker build - < Dockerfile

然后你應該用正確的名稱標記你的圖像。

創建映像后,請在 docker-compose.yml 文件中引用它:

my-service: 
   image: ${image_name}

另一種選擇是簡單地寫:

my-service: 
   build: .

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM