diff --git a/src/main/docker/dockerfile b/src/main/docker/dockerfile index affbe78..1aa4ac3 100644 --- a/src/main/docker/dockerfile +++ b/src/main/docker/dockerfile @@ -2,19 +2,29 @@ FROM amazoncorretto:21.0.2-alpine3.19 ENV SPRING_OUTPUT_ANSI_ENABLED=ALWAYS +# Crear usuario RUN adduser --system --shell /bin/sh microservice + +# Directorio de trabajo WORKDIR /home/microservice +# Copiar archivos como root ADD entrypoint.sh entrypoint.sh -COPY /src/main/resources/application.properties /home/microservice/application.properties -RUN chmod 755 entrypoint.sh && chown microservice entrypoint.sh +COPY /src/main/resources/application.properties /home/microservice/application.properties + +# Asignar permisos y propietario +RUN chmod 755 entrypoint.sh && chown microservice:microservice entrypoint.sh \ + && mkdir /home/microservice/data && chown -R microservice:microservice /home/microservice/data \ + && chmod -R 766 /home/microservice/data + +# Cambiar a usuario no root DESPUÉS de los pasos anteriores USER microservice -RUN mkdir data -RUN chmod -R 766 data/ - +# Exponer puerto EXPOSE 8080 +# Copiar el jar (esto se hace como root, pero va antes del ENTRYPOINT) ADD target/*.jar app.jar -ENTRYPOINT ["./entrypoint.sh"] \ No newline at end of file +# Entrypoint +ENTRYPOINT ["./entrypoint.sh"] diff --git a/src/main/docker/dockerfile.bakcup b/src/main/docker/dockerfile.bakcup new file mode 100644 index 0000000..affbe78 --- /dev/null +++ b/src/main/docker/dockerfile.bakcup @@ -0,0 +1,20 @@ +FROM amazoncorretto:21.0.2-alpine3.19 + +ENV SPRING_OUTPUT_ANSI_ENABLED=ALWAYS + +RUN adduser --system --shell /bin/sh microservice +WORKDIR /home/microservice + +ADD entrypoint.sh entrypoint.sh +COPY /src/main/resources/application.properties /home/microservice/application.properties +RUN chmod 755 entrypoint.sh && chown microservice entrypoint.sh +USER microservice + +RUN mkdir data +RUN chmod -R 766 data/ + +EXPOSE 8080 + +ADD target/*.jar app.jar + +ENTRYPOINT ["./entrypoint.sh"] \ No newline at end of file