【发布时间】:2019-12-06 03:00:21
【问题描述】:
我创建了一个带有工作目录的詹金斯奴隶。然后我有一个带有 Dockerfile 的 maven java 应用程序。
Dockerfile
#### BUILD image ###
FROM maven:3-jdk-11 as builder
RUN mkdir -p /build
WORKDIR /build
COPY pom.xml /build
RUN mvn -B dependency:resolve dependency:resolve-plugins
COPY /src /build/src
RUN mvn package
### RUN ###
FROM openjdk:11-slim as runtime
EXPOSE 8080
ENV APP_HOME /app
ENV JAVA_OPTS=""
RUN mkdir $APP_HOME
RUN mkdir $APP_HOME/config
RUN mkdir $APP_HOME/log
RUN mkdir $APP_HOME/src
VOLUME $APP_HOME/log
VOLUME $APP_HOME/config
WORKDIR $APP_HOME
COPY --from=builder /build/src $APP_HOME/src
COPY --from=builder /build/target $APP_HOME/target
COPY --from=builder /build/target/*.jar app.jar
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar app.jar" ]
Jenkins slave 看到这个 Dockerfile 并执行它。它构建目标文件夹。在目标文件夹中,我有 Jacoco 来显示代码覆盖率。
Jenkins 从工作区无法在 Jenkins jacoco 页面上看到该目标文件夹以显示代码覆盖率。我怎样才能使它可见?如图所示,我在我的 docker-compose 文件中尝试了卷
docker-compose.yml
version: '3'
services:
my-application-service:
image: 'my-application-image:v1.0'
build: .
container_name: my-application-container
ports:
- 8090:8090
volumes:
- /home/bob/Desktop/project/jenkins/workspace/My-Application:/app
但是,我无法在工作区中获取目标文件夹。如何让 jenkins slave 看到这个 jacoco 代码覆盖率?
【问题讨论】:
标签: docker jenkins docker-compose continuous-integration jacoco