hot*_*oup 3 docker dockerfile docker-compose
我有一个使用 MySQL 作为后备存储的 Web 服务。我想对该服务及其 MySQL 数据库进行 Docker 化。对于该服务,我有以下 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" \
]
Run Code Online (Sandbox Code Playgroud)
如果我正确理解 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
Run Code Online (Sandbox Code Playgroud)
根据我自己的修改,我确信 MySQL 容器已按照我想要的方式正确配置。现在我只是想弄清楚如何告诉docker-compose.ymlfile (它将位于我的项目的根目录中,与 Dockerfile 一起)使用服务的 Dockerfile,并且它取决于首先启动/运行的 MySQL 容器。我想我已经很接近了,但我很难冲过终点线。
任何人都可以帮助我配置docker-compose.yml创建一个名为my-service使用本地Dockerfile配置的服务吗?
小智 6
您可以从 dockerfile 创建图像:
docker build - < Dockerfile
Run Code Online (Sandbox Code Playgroud)
然后你应该用正确的名称标记你的图像。
创建图像后,在 docker-compose.yml 文件中引用它:
my-service:
image: ${image_name}
Run Code Online (Sandbox Code Playgroud)
另一种选择是简单地写:
my-service:
build: .
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3950 次 |
| 最近记录: |