# Intermediate container for packaging WebGoat 7.x Lessons FROM maven:3.6.1-jdk-8 AS lesson-builder WORKDIR /webgoat-lessons COPY ./WebGoat-Lessons /webgoat-lessons RUN mvn clean package # Intermediate container for packaging WebGoat 7.x WAR executable FROM maven:3.6.1-jdk-8 AS webgoat-builder WORKDIR /webgoat COPY ./WebGoat /webgoat COPY --from=lesson-builder /webgoat-lessons/target/plugins /webgoat/webgoat-container/src/main/webapp/plugin_lessons RUN mvn clean compile install package # Get the Contrast Agent from Maven FROM busybox:1.31.0 AS contrast-downloader WORKDIR /opt/contrast ARG CONTRAST_AGENT_VERSION=3.6.8.10823 RUN wget -O contrast.jar https://repo1.maven.org/maven2/com/contrastsecurity/contrast-agent/$CONTRAST_AGENT_VERSION/contrast-agent-$CONTRAST_AGENT_VERSION.jar # Build final image for running WebGoat application with Contrast FROM openjdk:8-alpine3.9 WORKDIR /app COPY --from=webgoat-builder /webgoat/webgoat-container/target/webgoat-container-7.1-war-exec.jar ./webgoat-container-7.1-war-exec.jar COPY --from=contrast-downloader /opt/contrast/contrast.jar /opt/contrast/contrast.jar COPY ./contrast_security.yaml.tpl /opt/contrast/contrast_security.yaml.tpl COPY ./entrypoint.sh /app/entrypoint.sh ENTRYPOINT ["/app/entrypoint.sh"] CMD ["--httpPort", "80"]