在docker compose构建过程中运行webpack构建

在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

我正在尝试使用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  # <<< 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感谢您的建议。所有包都包含在
--生产
依赖项中。在没有
--生产
的情况下,我也会遇到同样的错误。是的,我用的是卷。它在生成过程中不可访问吗?不,卷在生成过程中不可访问。