GitLab-CI缓存 - 凤凰框架 - 找不到预设“es2015”

时间:2017-08-07 10:05:04

标签: elixir phoenix-framework gitlab-ci

我遇到了this question中列出的同样问题。但是,当我使用gitlab-ci构建我的容器时,这种情况发生在我身上 - 但只有在我使用缓存功能时才会发生。

给出以下Dockerfile:

FROM bitwalker/alpine-elixir-phoenix
ARG MIX_ENV=prod
ENV MIX_ENV ${MIX_ENV}
ARG PORT=4000
ENV PORT ${PORT}
COPY . /app
WORKDIR /app
RUN mix deps.get --only prod
RUN npm install
RUN mix compile
RUN brunch build --production
RUN mix phoenix.digest
EXPOSE ${PORT}
CMD mix phoenix.server

brunch build --production行触发时发生以下错误:

  

编译web / static / js / socket.js失败。找不到预设   “/ app / node_modules / babel-preset-es2015”相对于目录   “web / static / js”;编译web / static / js / app.js失败。不能   找到预设“/ app / node_modules / babel-preset-es2015”相对于   目录“web / static / js”命令'/ bin / sh -c brunch build   --production'返回非零代码:1

以下是gitlab-ci.yml中我的构建工作的内容:

cache:
  untracked: true
  key: "$CI_BUILD_REF_NAME"
  paths:
    - node_modules/

stages:
  - test
  - build
  - review
  - staging
  - production
  - cleanup

build-image:
  stage: build
  image: docker:latest

  # When using dind, it's wise to use the overlayfs driver for
  # improved performance.
  variables:
    DOCKER_DRIVER: overlay

  services:
  - docker:dind

  before_script:
    - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY

  script:
    - docker build --pull --build-arg MIX_ENV=prod -t $CONTAINER_TEST_IMAGE .
    - docker push $CONTAINER_TEST_IMAGE

  only:
    - branches

  except:
    - master

我已确认/app/node_modules/babel-preset-es2015文件夹存在,并且我已尝试按照链接(上方)中的说明进行操作。删除node_modules文件夹或清理npm缓存似乎没有帮助。

有效的一件事就是禁用gitlab缓存。我能够通过构建新分支来避免这个问题(因此,创建一个新的缓存)。然而,问题又回来了。没有缓存的构建始终有效。

我错过了gitlab-ci缓存配置的内容吗?还有,有没有办法重置gitlab缓存(我正在使用gitlab.com上的最新产品)

0 个答案:

没有答案