Я получаю следующую случайную ошибку менее чем в 5% случаев выполнения заданий с тем же образом контейнера:
Application failed to start: resolveUserIdentity("1001"): User not found in file /etc/passwd
Мой докер-файл:
FROM registry.access.redhat.com/ubi8/ubi-minimal:8.7
RUN microdnf install freetype fontconfig \
&& microdnf clean all
WORKDIR /work/
RUN chown 1001 /work \
&& chmod "g+rwX" /work \
&& chown 1001:root /work
COPY --chown=1001:root target/*.properties target/*.so /work/
COPY --chown=1001:root target/*-runner /work/application
EXPOSE 8080
USER 1001
CMD ["./application", "-Dquarkus.http.host=0.0.0.0"]
Есть идеи?
Взгляните на этот stackoverflow ссылка1 и ссылка2
Привет @SidiBecker. Вы проверили комментарии выше? Как упоминал Клаус Д., вы получаете ошибку, потому что пользователь, указанный в вашем файле Dockerfile, не существует в файле /etc/passwd.
Спасибо вам всем. Я просто отвечаю на решение моего случая.
Я решил проблему с редактированием пользователя 1001 на пользователя 0 во всех ссылках в Dockerfile после аналогичного исправления ошибки в GCP Troubleshoot:
https://cloud.google.com/run/docs/troubleshooting?hl=en#error_user_root_is_not_found_in_etcpasswd
FROM registry.access.redhat.com/ubi8/ubi-minimal:8.7
RUN microdnf install freetype fontconfig \
&& microdnf clean all
WORKDIR /work/
RUN chown 0 /work \
&& chmod "g+rwX" /work \
&& chown 0:root /work
COPY --chown=0:root target/*.properties target/*.so /work/
COPY --chown=0:root target/*-runner /work/application
EXPOSE 8080
USER 0
CMD ["./application", "-Dquarkus.http.host=0.0.0.0"]
Для тех, кто не хочет использовать пользователя root в своем файле Docker, служба поддержки GCP заявила, что это проблема, над исправлением которой работает команда Cloud Run.
Вы перешли на пользователя, которого не существует. Либо вы сначала создаете его, либо используете другой.