circleci 2.0找不到awscli

时间:2017-03-29 09:23:20

标签: amazon-web-services aws-cli circleci

我正在使用circleCI 2.0并且他们无法找到aws,但他们的documents明确表示aws是默认安装的

当我使用这个circle.yml

version: 2
jobs:
  build:
    working_directory: ~/rian
    docker:
        - image: node:boron
    steps:
        - checkout
        - run:
            name: Pre-Dependencies
            command: mkdir ~/rian/artifacts
        - restore_cache:
            keys: 
              - rian-{{ .Branch }}-{{ checksum "yarn.lock" }}
              - rian-{{ .Branch }}
              - rian-master
        - run:
            name: Install Dependencies
            command: yarn install
        - run:
            name: Test
            command: |
              node -v
              yarn run test:ci
        - save_cache:
            key: rian-{{ .Branch }}-{{ checksum "yarn.lock" }}
            paths:
              - "~/.cache/yarn"
        - store_artifacts:
            path: ~/rian/artifacts
            destination: prefix
        - store_test_results:
            path: ~/rian/test-results
        - deploy:
            command: aws s3 sync ~/rian s3://rian-s3-dev/ --delete

发生以下错误:

/bin/bash: aws: command not found
Exited with code 127

所以,如果我以这种方式编辑代码

    - deploy:
        command: |
          apt-get install awscli
          aws s3 sync ~/rian s3://rian-s3-dev/ --delete

然后我又得到了另一种错误:

Reading package lists... Done


Building dependency tree       


Reading state information... Done

E: Unable to locate package awscli
Exited with code 100

任何人都知道如何修复这个???

2 个答案:

答案 0 :(得分:7)

您正在阅读的文档适用于CircleCI 1.0和2.0版本:

https://circleci.com/docs/2.0/

在CircleCI 2.0中,您可以使用自己喜欢的Docker镜像。您当前设置的图像是node:boron,其中不包含aws命令。

如果您只是想让它现在正常工作,您可以在circle.yml中自行安装aws命令。

apt-get update && apt-get install -y awscli

但是,为了充分利用Docker的优势,建议您构建一个包含必要依赖项的自定义Docker镜像,例如aws命令。

您可以编写自定义的aws-cli Docker图像:

FROM circleci/python:3.7-stretch

ENV AWS_CLI_VERSION=1.16.138
RUN sudo pip install awscli==${AWS_CLI_VERSION}

答案 1 :(得分:1)

我在部署到AWS lambda函数并将文件推送到S3存储桶时遇到了此问题。最后解决了它,然后构建了一个docker镜像,以节省每次安装AWS CLI的时间。这是图像和回购的链接!

https://github.com/wilson208/circleci-awscli

https://hub.docker.com/r/wilson208/circleci-awscli/

如果你需要在图片上添加任何内容,请点击PR或打开问题,我会尽可能的。

编辑:

另外,请查看github上的自述文件,了解将软件包部署到Lambda或将文件推送到S3的示例