Я использую Docker для Windows (Windows 10 в 2004 году, поэтому у меня есть WSL2), и я пытаюсь поместить приложение Nuxt в контейнер. Приложение хорошо работает в моей локальной системе, и после создания файла Dockerfile и его сборки я не могу перенести его на мою хост-систему. Принимая во внимание, что, пытаясь сделать то же самое с примерами приложений из https://github.com/BretFisher/docker-mastery-for-nodejs/tree/master/ultimate-node-dockerfile (предполагается использовать Dockerfile из папки test
), я могу получить доступ к тому же.
Если я exec
в мой работающий контейнер, я могу получить результат при запуске curl http://localhost:3000
, так что, предположительно, все в порядке.
Мой Dockerfile выглядит как
FROM node:12.18.3-buster-slim
LABEL org.opencontainers.image.authors=sayak@redacted.com
EXPOSE 3000
WORKDIR /app
RUN chown -R node:node /app
COPY --chown=node:node package*.json ./
ENV NODE_ENV=development
RUN apt-get update -qq && apt-get install -qy \
ca-certificates \
bzip2 \
curl \
libfontconfig \
--no-install-recommends
USER node
RUN npm config list
RUN npm ci \
&& npm cache clean --force
ENV PATH=/app/node_modules/.bin:$PATH
COPY --chown=node:node . .
RUN nuxt build
ENV NODE_ENV=production
CMD ["node", "server/index.js"]
Я даже попытался удалить все chown
s и удаление USER node
, чтобы запустить его как root
, но безрезультатно.
Это результат docker ps -a
d727c8dd4d5c my-container:1.2.3 "docker-entrypoint.s…" 23 minutes ago Up 23 minutes 0.0.0.0:3000->3000/tcp inspiring_dhawan
c3a5aac8b79f sample-node-app "/tini -- node serve…" 23 minutes ago Up 23 minutes (unhealthy) 0.0.0.0:8080->8080/tcp tender_ardinghelli
sample-node-app
из приведенная выше ссылка на GitHub работает, а мой my-container
- нет. Что я делаю не так?
РЕДАКТИРОВАТЬ: Я пробовал создавать и запускать контейнеры на виртуальной машине Ubuntu, но получаю тот же результат, поэтому это не проблема с WSL или Windows, но что-то не так с моими Dockerfile.