我有一个应用程序,它依赖于redis为其集成测试做准备。
我像在码头容器中一样运行集成测试,如下所示:
Dockerfile.test
FROM clementoh/openjdk:jdk8-gradle-5.2.1
WORKDIR /app
COPY . .
RUN ./gradlew test我试图使用来运行测试,如下所示:
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希望在启动redis之前先构建web服务,然后再构建web服务。此时,redis还没有启动,因此在Dockerfile.test中运行的测试将失败。
在启动redis之后,是否有可能运行web服务的构建?
发布于 2019-04-15 10:41:30
您可以使用ENTRYPOINT或CMD来执行./gradlew test。
发布您可以提供服务的帖子- $ docker-compose up
通过这种方式,在web服务的入口点或CMD执行之前,将始终启动redis服务。
https://stackoverflow.com/questions/55687307
复制相似问题