gpt4 book ai didi

docker - 从 docker-compose.yml 引用 Dockerfile?

转载 作者:行者123 更新时间:2023-12-02 02:23:46 24 4
gpt4 key购买 nike

我有一个使用 MySQL 作为后备存储的 Web 服务。我想将此服务及其 MySQL 数据库 Dockerize。对于服务,我有以下 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" \
]

如果我正确理解 Docker 生态系统,听起来我可以编写一个 Docker Compose 文件来启动 MySQL 容器实例和 Web 服务容器实例。所以我启动了一个 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,并且这取决于首先启动/运行的 MySQL 容器。我想我已经很接近了,但我很难越过终点线。

任何人都可以帮助我配置 docker-compose.yml 以创建一个名为 my-service 的服务,该服务使用本地 Dockerfile 进行配置?

最佳答案

您可以从 dockerfile 创建图像:

docker build - < Dockerfile

然后你应该用一个合适的名字来标记你的图像。

创建图像后在 docker-compose.yml 文件中引用它:

my-service: 
image: ${image_name}

另一种选择是简单地写:

my-service: 
build: .

关于docker - 从 docker-compose.yml 引用 Dockerfile?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66017563/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com