У меня есть приложение реагирования, в котором я использую абсолютный импорт вместо относительного импорта (https://medium.com/@ktruong008/absolute-imports-with-create-react-app-4338fbca7e3d). На моем локальном компьютере все работает как должно, но когда я пытаюсь собрать на докере, это не получается.
Iиметь файл .env, который содержит NODE_PATH='./'
, а create-реакции-приложение настроено таким образом, что его конфигурация веб-пакета автоматически подберет файлы .env и прочитает переменную окружения NODE_PATH
, которую затем можно использовать дляабсолютный импорт, что-то вроде src/components/NavBar
, разрешается.
Но когда я пытаюсь построить на докере, он не разрешается, а выдает эту ошибку.
Cannot find module: 'src/components/NavBar'. Make sure this package is installed.
You can install this package by running: yarn add src/components/NavBar.
Любые указатели приветствуются.
Сегодня я впервые работаю с Docker, поэтому я новичок.
Дополнительная информация:
Я использую файл Dockerfile и файл docker-compose.yml.
Я использую реагирующее приложение app-rewired (https://github.com/timarney/react-app-rewired), которое в основном помогает переопределить конфигурации веб-пакетов create-Reaction-app без извлечения.
Dockerfile
FROM node:10.15.1
ENV NODE_ENV production
RUN mkdir /usr/invoicing
COPY . /usr/invoicing
WORKDIR /usr/invoicing
RUN npm install
RUN npm run build
docker-compose.ymл
version: '3.5'
services:
web:
container_name: invoice-frontend
build:
context: .
dockerfile: Dockerfile
command: npm start
ports:
- '3000:3000'
networks:
- frontend
environment:
- NODE_ENV=production
networks:
frontend:
driver: 'bridge'