Я могу успешно создать и запустить образ докера для реагирующего приложения, а также безошибочно протестировать контейнер локально с помощью 'eb local run', но не могу развернуть приложение в AWS Elasticbeanstalk.
Строка, в которой возникает ошибка, находится ниже
rimraf dist && cross-env NODE_ENV = рабочий веб-пакет --progress --config webpack.config.prod.js
с журналами ошибок, указывающими на то, что он не может загрузить файл конфигурации webpack.
LoadConfigError: Невозможно преобразовать неопределенное или нулевое значение в объект
Но я уверен, что файл Docker скопировал файл webpack.config.prod.js в каталог контейнера
Каталог
d3-react
- static (folder containing react componentes, including /dist folder and index.html, index.jsx)
- tools
- server.js (script to start express server)
- Dockerfile
- Dockerrun.aws.json
- package.json
- webpack.config.prod.js
Dockerfile
FROM mhart/alpine-node:6
RUN apk add --update bash && rm -rf /var/cache/apk/*
RUN mkdir -p /home/ubuntu/d3-react
WORKDIR /home/ubuntu/d3-react
ENV PATH /home/ubuntu/d3-react/node_modules/.bin:$PATH
COPY package.json /home/ubuntu/d3-react/package.json
RUN npm install --silent
COPY . /home/ubuntu/d3-react
RUN npm run build
VOLUME [".:/home/ubuntu/d3-react/", "/home/ubuntu/d3-react/node_modules"]
EXPOSE 3000
CMD ["npm", "run", "start"]
Dockerrun.aws.json Переменные средыхранится отдельно в .ebextensions / .config
{
"AWSEBDockerrunVersion": "1",
"Image": {
"Name": "997849770688.dkr.ecr.ap-southeast-1.amazonaws.com/d3-react-frontend-copy_client:latest"
},
"MemoryReservation": 512
}
/ var / log / eb-activity.log
[0mThe command '/bin/sh -c npm run build' returned a non-zero code: 1 Failed to build Docker image aws_beanstalk/staging-app, retrying... Sending build context to Docker daemon 366.1kB
Step 1/10 : FROM mhart/alpine-node:6 ---> 17b27e78e1d9 Step 2/10 : RUN apk add --update bash && rm -rf /var/cache/apk/* ---> Using cache ---> 788ef336050d Step 3/10 : WORKDIR /home/ubuntu/d3-react ---> Using cache ---> 33c9e8d293ac Step 4/10 : ENV PATH /home/ubuntu/d3-react/node_modules/.bin:$PATH ---> Using cache ---> 736769aabb8c Step 5/10 : COPY . /home/ubuntu/d3-react ---> Using cache ---> d1d5160f1c90 Step 6/10 : RUN npm install --silent ---> Using cache ---> d02d9d19aa02 Step 7/10 : VOLUME [".:/home/ubuntu/d3-react/", "/home/ubuntu/d3-react/node_modules"] ---> Using cache ---> 9f640d61ad5e Step 8/10 : EXPOSE 3000 ---> Using cache ---> 4c5570b644c9 Step 9/10 : RUN npm run build ---> Running in 8c43fc5e484b
> F1-React-App@1.0.0 build /home/ubuntu/d3-react
> rimraf dist && cross-env NODE_ENV=production webpack --progress --config webpack.config.prod.js
[91m✖ 「config」: An error occurred while trying to load /home/ubuntu/d3-react/webpack.config.prod.js
Did you forget to specify a --require? [0m[91m/home/ubuntu/d3-react/node_modules/@webpack-contrib/config-loader/lib/load.js:85
throw new LoadConfigError(e, configPath);
^ [0m[91m LoadConfigError: Cannot convert undefined or null to object
at Object.<anonymous> (/home/ubuntu/d3-react/webpack.config.prod.js:10:24)
at Module._compile (/home/ubuntu/d3-react/node_modules/v8-compile-cache/v8-compile-cache.js:178:30)
at Object.Module._extensions..js (module.js:586:10)
at Module.load (module.js:494:32)
at tryModuleLoad (module.js:453:12)
at Function.Module._load (module.js:445:3)
at Module.require (module.js:504:17)
at require (/home/ubuntu/d3-react/node_modules/v8-compile-cache/v8-compile-cache.js:159:20)
at module.exports.moduleId (/home/ubuntu/d3-react/node_modules/import-fresh/index.js:28:9)
at loadJs (/home/ubuntu/d3-react/node_modules/cosmiconfig/dist/loaders.js:9:18)[0m[91m [0m[91m [0m[91mnpm[0m[91m [0m[91mERR![0m[91m Linux
4.14.77-69.57.amzn1.x86_64 [0m[91mnpm[0m[91m [0m[91mERR![0m[91m [0m[91margv[0m[91m "/usr/bin/node" "/usr/bin/npm" "run" "build" [0m[91mnpm[0m[91m [0m[91mERR![0m[91m [0m[91mnode[0m[91m v6.14.4 [0m[91mnpm[0m[91m [0m[91mERR![0m[91m [0m[91mnpm [0m[91m v3.10.10 [0m[91mnpm[0m[91m [0m[91mERR![0m[91m [0m[91mcode[0m[91m ELIFECYCLE [0m[91mnpm[0m[91m [0m[91mERR![0m[91m F1-React-App@1.0.0 build: `rimraf dist && cross-env NODE_ENV=production webpack --progress --config webpack.config.prod.js` [0m[91mnpm[0m[91m [0m[91mERR![0m[91m Exit status 1
РЕДАКТИРОВАТЬ:
Если я удаляю команды rimraf и cross-env, я вместо этого вижу эту ошибку:
at require (internal/module.js:20:19)
at Object.<anonymous> (/home/ubuntu/d3-react/node_modules/.bin/webpack:5:24)
at Module._compile (module.js:577:32)
at Object.Module._extensions..js (module.js:586:10)
at Module.load (module.js:494:32)
at tryModuleLoad (module.js:453:12)
at Function.Module._load (module.js:445:3)[0m[91m
[0m[91mnpm[0m[91m [0m[91mERR![0m[91m [0m[91margv[0m[91m "/usr/bin/node" "/usr/bin/npm" "run" "build"
Что мешает успешному завершению "сборки npm run"?