gpt4 book ai didi

docker 组成 : Is it possible to start a service before building another?

转载 作者:可可西里 更新时间:2023-11-01 11:14:32 24 4
gpt4 key购买 nike

我有一个应用程序依赖于 Redis 进行集成测试。

我像这样在 docker 容器中运行我的集成测试:

Dockerfile.test

FROM clementoh/openjdk:jdk8-gradle-5.2.1

WORKDIR /app

COPY . .

RUN ./gradlew test

我正在尝试使用 Docker Compose 来运行我的测试:

docker-compose.yml

version: '3'
services:
redis:
image: "redis:5.0.4"
web:
build:
context: .
dockerfile: Dockerfile.test
environment:
- SPRING_REDIS_HOST=redis
- SPRING_REDIS_PORT=6379
depends_on:
- redis

我遇到的问题是 docker compose 想要先构建 web 服务,然后再启动 redis,然后再构建 web 服务。此时,redis 尚未启动,因此在 Dockerfile.test 中运行的测试失败。

是否可以在redis启动后运行web服务的构建?

最佳答案

您可以使用ENTRYPOINTCMD 来执行./gradlew test

发布您可以启动服务的帖子 -$ docker-compose up

这样,redis 服务将始终在 web 服务的入口点或 CMD 执行之前启动。

关于 docker 组成 : Is it possible to start a service before building another?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55687307/

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