在docker compose构建过程中运行webpack构建
我正在尝试使用js文件的缩小版本构建一个生产docker容器 在我的在docker compose构建过程中运行webpack构建,docker,npm,webpack,docker-compose,npm-install,Docker,Npm,Webpack,Docker Compose,Npm Install,我正在尝试使用js文件的缩小版本构建一个生产docker容器 在我的Dockerfile中,在安装npm包之后,我正在尝试构建Web包编译 RUN npm install -g n # upgrading the npm version RUN n stable ADD ./webpack/package.json /package.json RUN npm install --production RUN npm run build-production # <<< Fa
Dockerfile
中,在安装npm包之后,我正在尝试构建Web包编译
RUN npm install -g n # upgrading the npm version
RUN n stable
ADD ./webpack/package.json /package.json
RUN npm install --production
RUN npm run build-production # <<< Fails here
运行npm安装-g n#升级npm版本
保持稳定
添加./webpack/package.json/package.json
运行npm安装--生产
运行npm运行构建生产#请使用
RUN bash -l -c 'npm run build-production'
而不是你的
RUN npm run build-production # <<< Fails here
RUN npm RUN build production#问题可能是build production
需要一个devdependency
,但尚未安装
保持生产图像小的一个好方法是使用像这样的工具。它使在dev容器中运行构建任务变得很容易,然后将所有内容打包到生产映像中,所有这些都只需一个命令
下面是一个可能适合您的示例dobi.yaml
meta:
project: some-project-name
image=builder:
image: myproject-dev
context: dockerfiles/
dockerfile: Dockerfile.build
image=production:
image: user/prod-image-name
context: .
depends: [build]
mount=source:
bind: .
path: /code
run=build:
use: builder
mounts: [source]
command: "npm run build-production"
artifact: path/to/minified/assets
运行dobi production
将运行任何过时的任务。如果没有任何源文件已更改,则跳过任务。依赖于:[build]
确保构建步骤始终首先运行。您能包含您得到的确切错误消息吗?build production
的一个依赖项是否可能列在devDependencies
下,这就是它找不到它的原因?由于--production
标志而未安装它?运行时是否使用卷?@dnephin感谢您的建议。所有包都包含在--生产
依赖项中。在没有--生产的情况下,我也会遇到同样的错误。是的,我用的是卷。它在生成过程中不可访问吗?不,卷在生成过程中不可访问。