0bcd66ba32
CI / Build Native (push) Successful in 6m25s
Cuando el volumen named 'shot-crafter-data' es nuevo, Docker lo monta con owner root:root. La aplicacion corre como UID 1001 y no puede escribir -> H2 falla al crear shots.mv.db -> BootstrapAdmin no crea el admin -> no se puede login. Quitar 'USER 1001' del Dockerfile, agregar entrypoint.sh que: 1. chown -R 1001:1001 /work/data (la app va a poder escribir) 2. chmod 0755 /work 3. setpriv --reuid=1001 --regid=1001 --init-groups -- /work/application (drop a no-root antes del exec) Resultado: el contenedor arranca como root el primer instante, hace el fix de permisos una sola vez, y desde ese momento la app corre como 1001. Docker defaults USER a root cuando no hay directiva USER.
18 lines
541 B
Docker
18 lines
541 B
Docker
FROM ubuntu:22.04
|
|
RUN apt-get update \
|
|
&& apt-get install -y --no-install-recommends curl ca-certificates \
|
|
&& rm -rf /var/lib/apt/lists/* \
|
|
&& useradd -u 1001 -U -M -s /usr/sbin/nologin app \
|
|
&& mkdir -p /work \
|
|
&& chown 1001:1001 /work
|
|
WORKDIR /work/
|
|
COPY --chown=1001:1001 build-output/*-runner /work/application
|
|
COPY entrypoint.sh /entrypoint.sh
|
|
RUN chmod 0755 /entrypoint.sh \
|
|
&& chmod 775 /work /work/application \
|
|
&& echo "securerandom.source=file:/dev/urandom" >> /work/application
|
|
|
|
EXPOSE 8080
|
|
|
|
ENTRYPOINT ["/entrypoint.sh"]
|