Я использую многоступенчатую сборку для компиляции приложения реакции. В первую очередь я использую образ базового узла, после того как использую изображение nginx для доступа к порту 80.
Я пытаюсь КОПИРОВАТЬ файлы сборки со стадии компоновщика в / usr / share / nginx / html, но ничего не получает.
Создание образа, который работает, с docker -compose ничего не делает.
Я попытался открыть проблему в репозитории docker, но закрыто, поэтому открытие на движке moby также не вариант, когда podman (который использует движок moby) работает хорошо, за исключением compose, который порождает команду как not sudoers, и сборка завершается ошибкой при загрузке образа узла.
FROM node:slim as build
WORKDIR /usr/app
COPY package.json .
COPY public public
COPY src src
RUN npm install
RUN npm run build
COPY build .
RUN rm -rf src
RUN rm -rf build
FROM nginx:latest
COPY --from=build /usr/app /usr/share/nginx/html
# RUN chown www-data:www-data ./usr/share/nginx/html/*
EXPOSE 80
По команде ls я вижу сборку, но когда я пытаюсь подключиться к localhost, появляется запрещенная ошибка, а при попытке доступа к индексу. html Я получаю 404.
Я вошел в папку html, используя bash, и проверил, используя namei -l. а файла вообще нет.
Что я делаю не так? Я просмотрел массу вопросов и не получил ответа или каких-либо указаний, кроме факта добавления sla sh копируемой папки.
В настоящее время я использую RHEL. Итак, требуется разрешение sudoers для запуска docker команд. Может в этом проблема? В podman-compose мне нужно создать команду сборки sudo docker -compose, и она запускает другие команды сборки как non root.
Следовательно, это не происходит на docker -ce.