我用工作目录创建了一个詹金斯奴隶。然后,我有了一个带有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从属服务器看到此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奴隶看到此jacoco代码覆盖率?