通过Docker将CDK部署到AWS时,bash:cdk:未找到命令

kokeuurv  于 2023-01-25  发布在  Docker
关注(0)|答案(1)|浏览(173)

Dockerfile.infradocker-compose-infra.yml两个文件,首先通过以下命令构建docker-compose-infra.yml

docker-compose --file docker-compose-infra.yml build

这不会导致错误,并按预期完成。
尝试将其部署到AWS时出现问题。

docker-compose --file docker-compose-infra.yml run cdk

产生以下错误:

bash: cdk: command not found

这似乎是在docker-compose-infra.yml尝试运行cdk deploy bash命令时触发的。
该命令应该运行,因为在Dockerfile.infra内部版本中,cdk通过npm install -g aws-cdk-lib安装。
文档文件.infra文件:

FROM node:16-slim

ENV DEBIAN_FRONTEND=noninteractive

RUN npm install -g aws-cdk-lib  \
    && apt-get update -y \
    && apt-get upgrade -y \
    && apt-get install -y --no-install-recommends \
    # install Python
    python3-pip \
    # install Poetry via curl
    curl \
    && curl -k https://install.python-poetry.org | python3 - \
    && apt-get remove curl -y \
    && apt-get autoremove -y \
    && rm -rf /var/lib/apt/lists/*

COPY pyproject.toml poetry.lock /
ENV PATH=/root/.local/bin:$PATH
RUN poetry config virtualenvs.create false \
    && poetry install --no-dev

WORKDIR /app/
COPY app.py cdk.json cdk.context.json /app/
COPY stacks/ /app/stacks/

docker-compose-infra.yml:

version: "3"
    services:
      cdk:
        command: bash -c "cdk deploy --require-approval never --all --parameters my-app-${ENVIRONMENT}-service:MyServiceImageTag=${IMAGE_TAG}"
        build:
          context: ./
          dockerfile: Dockerfile.infra
        environment:
          - AWS_PROFILE=${AWS_PROFILE}
          - ENVIRONMENT=${ENVIRONMENT}
          - DEPLOY_ACCOUNT=${DEPLOY_ACCOUNT}
        volumes:
          - ~/.aws/credentials:/root/.aws/credentials
erhoui1w

erhoui1w1#

您需要安装aws-cdk,而不是aws-cdk-lib

RUN npm install -g aws-cdk \

这可能有点混乱,因为aws-cdk-lib也是在编写Python CDK应用程序 * 和 * 有效的npm包时所需的Python依赖项的名称。

相关问题