Получение случайной ошибки «Пользователь не найден в файле /etc/passwd» при выполнении задания в облаке

Я получаю следующую случайную ошибку менее чем в 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"]

Есть идеи?

Вы перешли на пользователя, которого не существует. Либо вы сначала создаете его, либо используете другой.

Klaus D. 21.06.2024 16:30

Взгляните на этот stackoverflow ссылка1 и ссылка2

Sathi Aiswarya 21.06.2024 19:58

Привет @SidiBecker. Вы проверили комментарии выше? Как упоминал Клаус Д., вы получаете ошибку, потому что пользователь, указанный в вашем файле Dockerfile, не существует в файле /etc/passwd.

Sathi Aiswarya 24.06.2024 11:54

Спасибо вам всем. Я просто отвечаю на решение моего случая.

SidiBecker 24.06.2024 18:48
Создание приборной панели для анализа данных на GCP - часть I
Создание приборной панели для анализа данных на GCP - часть I
Недавно я столкнулся с интересной бизнес-задачей - визуализацией сбоев в цепочке поставок лекарств, которую могут просматривать врачи и...
0
4
168
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Я решил проблему с редактированием пользователя 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.

Другие вопросы по теме