Как докернизировать приложение React на контейнерах Windows

У меня есть приложение React, которое я хотел бы Dockerize для контейнеров Windows. это мой Dockerfile:

FROM stefanscherer/node-windows

# Override the base log level (info).
ENV NPM_CONFIG_LOGLEVEL warn

# Expose port for service
EXPOSE 80

# Install and configure `serve`.
RUN npm install -g serve

# Copy source code to image
COPY . .

# Install dependencies
RUN npm install

# Build app and start server from script
CMD [ "npm", "start" ]

Образ успешно создан, но когда я пытаюсь запустить его, я получаю эту ошибку:

Error response from daemon: container 3b4b9e2bab346bbd95b9dc144429026c1abbe7f4d088f1f10d4c959364f50e9e encountered an error during CreateProcess: failure in a Windows system call: The system cannot find the file specified. (0x2) extra info: {"CommandLine":"npm start","WorkingDirectory":"C:\\","Environment":{"NPM_CONFIG_LOGLEVEL":"warn"},"CreateStdInPipe":true,"CreateStdOutPipe":true,"CreateStdErrPipe":true,"ConsoleSize":[0,0]}.

Я новичок в Docker, поэтому я не уверен, что что-то упустил. Есть идеи?

1 ответ

Эта ошибка, вероятно, связана с тем, что база изображенияnanoserverв этом случае, а затемreact-scriptsне работает хорошо. Также образы докеров изstefanscherer/node-windowsне обновляется (последние версии NodeJ в этих образах — 12.x).

Из-за этого я сделал один новый образ докера с некоторыми версиями LTS, например, 14.19.0, 16.17.0.

Образ докера — henriqueholtz/node-win, где теги — это версии NodeJs.

Примечание . На данный момент у NodeJ нет официального образа для контейнера Windows.

В README в Docker Hub вы можете увидеть один пример и ссылки на некоторые статьи с другими примерами.

Посмотрите несколько статей с примерами:

Ниже приведен один пример запуска вашегоcreate-react-app, например (очевидно, вы должны изменить громкость на свою папку — используйте powershell):

      docker run -t -p 3000:3000 --name=my-own-cra-windows-container -v C:\Projects\my-own-cra\:C:\app\ henriqueholtz/node-win:16.17.0 cmd /c "npm -v & node -v & npm start"

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