circleci 2.0 找不到 awscli

circleci 2.0 can't find awscli

我正在使用 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

有人知道如何解决这个问题吗???

您正在阅读的文档适用于 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}

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

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

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

如果您需要向图片添加任何内容,请发起 PR 或提出问题,我会尽快处理。

编辑:

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