Невозможно запустить (Linux контейнер) или создать образ (Windows контейнер) сайта Gatsby React (ошибка двоичных файлов win, ошибка соответствия манифеста) через Docker - PullRequest
0 голосов
/ 19 июня 2020

Мой веб-сайт упакован, и я хотел поместить его в контейнер для опыта, поскольку я никогда раньше не использовал Docker. Он построен на Гэтсби. Я произвел бесплатную sh установку Docker и столкнулся с двумя проблемами:

Если я попытаюсь создать изображение в контейнере Linux, похоже, это сработает, но на самом деле я не могу запустить его. Я получаю следующую ошибку: "Ошибка в" / app / node_modules / gatsby-transformer-sharp / gatsby- node.js ": двоичные файлы 'win32-x64' не могут использоваться на платформе 'linuxmusl-x64'. Удалите ' node_modules / sharp 'и запустите' npm install 'на платформе' linuxmusl-x64 '.

Я попробовал описанное выше, удалив и переустановив Sharp в моем проекте безрезультатно. Я даже не используя Sharp, и я не знаю, что это такое.

Если я переключаюсь на контейнеры Windows, я даже не могу создать изображение, так как получаю следующее: «нет соответствующего манифеста для windows / amd64 10.0 .18363 в записях списка манифестов "

Мой файл Dockerfile выглядит следующим образом:

FROM node:13.12.0-alpine

# set working directory
WORKDIR /app

# add `/app/node_modules/.bin` to $PATH
ENV PATH /app/node_modules/.bin:$PATH

# install app dependencies
COPY package.json ./
COPY package-lock.json ./
RUN npm install --silent
RUN npm install react-scripts@3.4.1 -g --silent

# add app
COPY . ./

# start app
CMD ["npm", "start"]

, а мой .dockerignore содержит

node_modules
build
Dockerfile
Dockerfile.prod
.git

Вещи, которые я пробовал:

Этот учебник> https://mherman.org/blog/dockerizing-a-react-app/ (Где я взял текст Dockerfile)

Этот учебник> https://www.robinwieruch.de/docker-create-react-app-development (И его Dockerfile в какой-то момент )

Изменение FROM для узла: на 14.4.0, 14, с или без -alpine.

Удаление и переустановка Sharp

Полное удаление Sharp и попытка запустить его таким образом (по какой-то причине я все еще получаю резкую ошибку)

Читаю документацию. Который по какой-то причине говорит вам только, как запустить приложение по умолчанию (например, create-react-app) или приложение, извлеченное откуда-то, но не как это сделать для нашего собственного веб-сайта.

Спасибо

...