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" \
]
如果我正确理解 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.ymlfile (它将位于我的项目的根目录中,与 Dockerfile 一起)使用服务的 Dockerfile,并且它取决于首先启动/运行的 MySQL 容器。我想我已经很接近了,但我很难冲过终点线。
任何人都可以帮助我配置docker-compose.yml创建一个名为my-service使用本地Dockerfile配置的服务吗?
小智 6
您可以从 dockerfile 创建图像:
docker build - < Dockerfile
然后你应该用正确的名称标记你的图像。
创建图像后,在 docker-compose.yml 文件中引用它:
my-service: 
   image: ${image_name}
另一种选择是简单地写:
my-service: 
   build: .
| 归档时间: | 
 | 
| 查看次数: | 3950 次 | 
| 最近记录: |