在AWS CodeBuild容器中安装Linux Homebrew

问题描述 投票:2回答:1

我有一个AWS CodeBuild项目,我需要在CodeBuild容器内调用SAM CLI。在build阶段,我添加了一个命令来安装Linux Homebrew,以便可以根据文档从AWS Homebrew点击安装SAM CLI。

但是,运行此命令后,我收到以下错误。

[Container] 2020/01/20 05:29:26 Running command bash -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)"
-e:196: warning: Insecure world writable dir /go/bin in PATH, mode 040777
Don't run this as root!

[Container] 2020/01/20 05:29:28 Command did not exit successfully bash -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)" exit status 1
[Container] 2020/01/20 05:29:28 Phase complete: BUILD State: FAILED
[Container] 2020/01/20 05:29:28 Phase context status code: COMMAND_EXECUTION_ERROR Message: Error while executing command: bash -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)". Reason: exit status 1

我正在使用AWS提供的Ubuntu Standard“ 3.0”构建环境。

buildspec.yml

version: 0.2
phases:
  install:
    runtime-versions:
      docker: 18
      nodejs: 10
      python: 3.8
  build:
    commands:
      - echo Installing SAM CLI
      - sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)"
      - brew tap aws/tap
      - brew install aws-sam-cli
      - sam version

问题:如何在AWS CodeBuild项目中成功安装Linux Homebrew?

amazon-web-services aws-codebuild aws-serverless
1个回答
0
投票

[1] https://hub.docker.com/r/pahud/aws-sam-cli

    第二个更困难的选择是自己安装SAM CLI。由于brew无法以任何方式用作root,并且CodeBuild构建容器以root身份运行,因此这很棘手。以下是我已经测试过的buildspec,可以确认将安装aws sam cli:
  • Buildspec:

    version: 0.2 phases: install: commands: - curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh > /tmp/install.sh - cat /tmp/install.sh - chmod +x /tmp/install.sh - useradd -m brewuser - echo "brewuser:brewuser" | chpasswd - adduser brewuser sudo - /bin/su -c /tmp/install.sh - brewuser - /bin/su -c '/home/brewuser/.linuxbrew/bin/brew tap aws/tap' - brewuser - /bin/su -c '/home/brewuser/.linuxbrew/bin/brew install aws-sam-cli' - brewuser build: commands: - PATH=/home/brewuser/.linuxbrew/bin:$PATH - sam --version

    注意:根据我的测试,Python 3.8不包含sam cli。

© www.soinside.com 2019 - 2024. All rights reserved.