Contoh Dockerfile Untuk Java 8 dengan Maven
Contoh jika jar sudah di-built
# build from complete compiled spring-boot jar
FROM java:8
RUN mkdir /usr/src/namaProyek
COPY namaProyek-0.0.1-SNAPSHOT.jar /usr/src/namaProyek
WORKDIR /usr/src/namaProyek
#RUN apt-get update -y
RUN apt-get install -y tzdata
ENV TZ Asia/Jakarta
# standar parameter java. Jika mau memasukkan properties bisa juga di sini dengan -D
ENV JAVA_OPTS="-Xms768m -Xmx1024m -XX:PermSize=768m -XX:MaxPermSize=768m"
# standar argumen java. Di properties biasanya ditandai seperti ini:
# nama.properties=${NILAI_CONFIG:nilaiDefault}
ENV RUN_ARGS="--APP_NAME=namaProyek --APP_PORT=5005"
ENV RUN_ARGS=$RUN_ARGS" --CONFIG_SERVER=http://192.168.1.12:9999 --EUREKA_SERVER=http://192.168.1.12:8003/eureka"
ENV RUN_ARGS=$RUN_ARGS" --DB_URL=jdbc:db2://192.168.1.12:50001/namaDb --DB_USERNAME=db2inst1 --DB_PASSWORD=password --DB_SCHEMA=NAMA_PROYEK"
#Ini cuma untuk debug saja
#CMD echo $(ls -l -a /usr/src/namaProyek)
#CMD echo $(java -version)
#Jalankan Java
CMD java $JAVA_OPTS -jar /usr/src/namaProyek/namaProyek-0.0.1-SNAPSHOT.jar $RUN_ARGS
#Agar port bisa diakses oleh host. Sekedar catatan, tidak berfungsi jika network="host"
EXPOSE 5005
Contoh jika jar belum di-built
# build from source code FROM maven:3.8-jdk-8 AS build RUN mkdir /usr/src/namaProyek WORKDIR /usr/src/namaProyek # salin pom.xml dan source code ke dalam container COPY pom.xml /usr/src/namaProyek/pom.xml COPY src /usr/src/namaProyek/src # sekedar debug, memastikan sudah tersalin ke container RUN echo $(ls -l -a /usr/src/namaProyek) #build RUN mvn -f /usr/src/MS_DigitalWealth/pom.xml clean package #build sudah selesai, saatnya masukkan hasil jar FROM java:8 COPY --from=build /usr/src/namaProyek/target/namaProyek-0.0.1-SNAPSHOT.jar /usr/src/namaProyek/target/namaProyek-0.0.1-SNAPSHOT.jar RUN echo "setelah build package" RUN echo $(ls -l -a /usr/src/namaProyek) ENV RUN_ARGS="--DB_URL=jdbc:db2://192.168.1.12:50000/namaDb --DB_USERNAME=db2inst1 --DB_PASSWORD=password" # Anda bisa pakai CMD seperti pada contoh sebelumnya atau pakai ENTRYPOINT # jika java tidak ditemukan, maka pakailah CMD. ENTRYPOINT /usr/src/namaProyek/target/namaProyek-0.0.1-SNAPSHOT.jar #Agar port bisa diakses oleh host. Sekedar catatan, tidak berfungsi jika network="host" EXPOSE 5005
0 comments:
Post a Comment