sur*_*w55 11 node.js docker reactjs next.js
我在docker中运行我的应用程序,但我的生产构建和启动脚本仅在docker环境中失败.虽然node_env开发在docker环境中运行良好.
这是我的脚本无法进行生产构建并启动服务器.我正在使用nodemon和babel
"build:prod": {
"command": "babel ./src/server/ -d server --presets es2015,stage-2 && next build src",
"env": {
"NODE_ENV": "production"
}
},
"start:prod": {
"command": "PORT=3000 nodemon --watch ./src/server/ ./src/server/server.js --exec babel-node --presets es2015,stage-2",
"env": {
"NODE_ENV": "production"
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我在docker环境中给出相同的命令时:
FROM node:8-alpine
COPY package.json /tmp/package.json
RUN cd /tmp && npm install
RUN mkdir -p /opt/app && cp -a /tmp/node_modules /opt/app
WORKDIR /opt/app
ADD . /opt/app
RUN npm run build:prod
EXPOSE 3000
CMD ["npm", "run", "start:prod"]
Run Code Online (Sandbox Code Playgroud)
我在docker中收到以下错误:
> better-npm-run start:prod
site_1 |
site_1 | running better-npm-run in /opt/app
site_1 | Executing script: start:prod
site_1 |
site_1 | to be executed: PORT=3000 NODE_ENV=production nodemon --watch ./src/server/ ./src/server/server.js --exec babel-node --presets es2015,stage-2
site_1 | [nodemon] 1.17.3
site_1 | [nodemon] to restart at any time, enter `rs`
site_1 | [nodemon] watching: /opt/app/src/server/**/*
site_1 | [nodemon] starting `babel-node ./src/server/server.js --presets es2015,stage-2`
site_1 | false 'production'
site_1 | > Could not find a valid build in the '.next' directory! Try building your app with 'next build' before starting the server.
site_1 | [nodemon] app crashed - waiting for file changes before starting...
Run Code Online (Sandbox Code Playgroud)
我很感激任何帮助,很高兴知道我做错了什么.
您需要确保该.next目录不是从您的主机复制的
ADD . /opt/app
Run Code Online (Sandbox Code Playgroud)
还将添加.next您在主机上的目录。我会添加.dockerignore并添加.next到相同的内容。然后再次构建并运行
| 归档时间: |
|
| 查看次数: |
1570 次 |
| 最近记录: |