AWS-CDK 和 Gitlab 返回错误:spawnSync docker ENOENT

red*_* 87 14 amazon-web-services npm gitlab docker

我正在尝试运行一个 Gitlab 管道,通过 cdk-synth 命令构建 AWS-CDK 项目。我遵循了网上关于应该在 Gitlab 运行程序中使用哪些图像的建议,但遇到了以下错误:

错误:spawnSync docker ENOENT

我不确定这个错误到底意味着什么,我猜它正在尝试启动 docker (由命令使用cdk synth)但未能这样做。同样,我在网上找到的所有内容都建议使用我当前拥有的设置:

image: node:16.3.0-alpine

stages:
  - build
  - test
  - .post

cache:
  key: ${CI_COMMIT_REF_SLUG}
  paths:
    - .npm
    - node_modules

build:
  tags:
    - mytag
  environment: ${CI_COMMIT_BRANCH}
  stage: build
  script:
    - npm i
    - cdk synth --no-staging > template.yaml
  artifacts:
    paths:
      - cdk.out
    expire_in: 30 mins
Run Code Online (Sandbox Code Playgroud)

我真的对这个迷失了,它可能正盯着我看,但有人可以给我指出正确的方向,为什么当我使用的图像本身就是一个 docker 容器时我会收到此错误?

Dus*_*tin 25

我也被困在这个问题上,但能够通过在我的inesbuild中添加 as 来解决它。devDependenciespackage.json

  • 是的,您可以简单地使用“npm i -D esbuild”来做到这一点。 (4认同)

The*_*Epk 6

经过大约10天左右的时间摆弄docker内部的docker等...以及基于同一问题的其他解决方案的大量试验和错误,例如 这个

我得出了以下解决方案。

如果您使用NodejsFunction函数,您似乎需要在 gitlab-ci 模板(before_script/script)中包含以下内容:

- apk 添加 bash(来源:此处

- npm i -g esbuild

esbuild用于将基于 JavaScript 的 lambda 函数代码及其依赖项打包到单个文件中。这对我有用:

cdk_synth:
  image: node:16-alpine
  stage: validate
  before_script:
    - apk add bash
    - npm i -g esbuild
    - npm install
    - npm i -g aws-cdk
    - npm i -g aws-cdk-lib
  script:
    - cdk bootstrap aws://$AWS_ACCOUNT_ID/$AWS_REGION
    - cdk synth
Run Code Online (Sandbox Code Playgroud)


red*_* 87 0

添加这些行解决了我的问题!

  script:
    - apt-get update
    - apt-get install -y ca-certificates curl gnupg lsb-release
    - mkdir -p /etc/apt/keyrings
    - curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
    - echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
    - apt-get update
    - apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
    - npm i
    - npm run synth
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

9353 次

最近记录:

1 年,9 月 前