# Wybór obrazu bazowego z JDK 11
FROM openjdk:11-jre-slim
# Dodanie metadanych do obrazu
LABEL maintainer="yourname@example.com"
LABEL version="1.0.0"
LABEL description="This is a sample Java application."
# Ustawienie zmiennej ARG
ARG APP_VERSION=1.0.0
# Ustawienie zmiennej środowiskowej
ENV APP_HOME=/usr/local/myapp
ENV JAVA_OPTS="-Xmx512m"
# Ustawienie katalogu roboczego
WORKDIR $APP_HOME
# Kopiowanie plików aplikacji do katalogu roboczego
COPY target/myapp-${APP_VERSION}.jar $APP_HOME/myapp.jar
# Dodanie pliku zdalnego (przykład użycia ADD)
ADD https://example.com/config/config.yml $APP_HOME/config.yml
# Uruchomienie polecenia podczas budowy obrazu
RUN echo "Creating directory for logs..." && mkdir -p $APP_HOME/logs
# Tworzenie punktu montowania dla wolumenów
VOLUME $APP_HOME/logs
# Określenie portu, na którym aplikacja będzie nasłuchiwać
EXPOSE 8080
# Ustawienie użytkownika do uruchomienia aplikacji
USER nobody
# Ustawienie domyślnego polecenia do uruchomienia aplikacji
CMD ["java", "-jar", "$APP_HOME/myapp.jar"]
# Ustawienie punktu wejścia
ENTRYPOINT ["java", "-jar", "$APP_HOME/myapp.jar"]