ARG JDK_VERSION=11-oraclelinux8 FROM openjdk:${JDK_VERSION} LABEL maintainer="Dimas Maryanto <software.dimas_m@icloud.com>" # Created user & folder RUN groupadd www-data && \ adduser -r -g www-data www-data # Create folder & give access to read and write ENV FILE_UPLOAD_STORED=/var/lib/spring-boot/data RUN mkdir -p ${FILE_UPLOAD_STORED} && \ chmod -R 777 ${FILE_UPLOAD_STORED}/ # set working directory WORKDIR /usr/local/share/applications # set user USER www-data ARG JAR_FILE="udemy-springboot-docker-0.0.1-SNAPSHOT.jar" # copy file from local to images then rename to spring-boot.jar ADD --chown=www-data:www-data target/$JAR_FILE spring-boot.jar ENV APPLICATION_PORT=80 ENV PROFILE=default ENV DATABASE_USER=mysql ENV DATABASE_PASSWORD=testing # define volume for documentation VOLUME ${FILE_UPLOAD_STORED}/ # reqired command to run application ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "spring-boot.jar"] # set default command params CMD ["--server.port=${APPLICATION_PORT}", "--spring.profiles.active=${PROFILE}"] # Health check every 5 minutes and set timeout 3 seconds using curl EXPOSE ${APPLICATION_PORT} HEALTHCHECK --interval=5m --timeout=3s \ CMD curl -f http://localhost:${APPLICATION_PORT}/actuator || exit 1