AWS CLI를 사용하려고 했는데 "less"라고 합니다.

Nestjs, Serverless Framework, DynamoDB로 간단한 앱을 만들고 싶어서remote-contaainer를 위한 Docker file를 만들었습니다.
Dockerfile
FROM node:18.0.0

# devcontainer上で操作するユーザーを指定
ARG username="node"
ARG ACCESS_KEY
ARG SECRET_KEY

# AWS CLIのインストール
RUN curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
RUN unzip awscliv2.zip
RUN ./aws/install
RUN rm -f awscliv2.zip

# serverlessをinstall
RUN npm i -g serverless

# pingのインストール
RUN apt-get update
RUN apt-get install -y iputils-ping

# serverlessの認証情報を設定
RUN serverless config credentials --provider aws --key $ACCESS_KEY --secret $SECRET_KEY
docker-compose.yml
version: '3.9'
services:
  dynamodb-local:
    command: "-jar DynamoDBLocal.jar -sharedDb -dbPath ./data"
    image: "amazon/dynamodb-local:1.18.0"
    container_name: dynamodb-local
    ports:
      - "8000:8000"
    volumes:
      - "./dynamodb:/home/dynamodblocal/data"
    working_dir: /home/dynamodblocal
  demo-app:
    container_name: demo-app
    build:
      context: .
      dockerfile: Dockerfile
      args:
        - ACCESS_KEY=${ACCESS_KEY}
        - SECRET_KEY=${SECRET_KEY}
    command: /bin/sh -c "while sleep 1000; do :; done"
    volumes:
      - "../:/workspaces/demo"
    depends_on:
      - dynamodb-local
  dynamodb-admin:
    container_name: dynamodb-admin
    image: aaronshaf/dynamodb-admin:latest
    environment:
      - DYNAMO_ENDPOINT=dynamodb-local:8000
    ports:
      - 8001:8001
    depends_on:
      - dynamodb-local
dymanodb-admin에서dynamodb를 조작할 수 있기 때문에 AWS CLI에서 demo-app의 용기에서dynamodb를 참고할 때 다음과 같은 오류가 발생합니다
$ aws dynamodb list-tables --endpoint-url http://dynamodb-local:8000

Unable to redirect output to pager. Received the following error when opening pager:
[Errno 2] No such file or directory: 'less'

Learn more about configuring the output pager by running "aws help config-vars".
이것은 무엇입니까?그러고 보니 조사해 보니 이런 기사가 발견됐어요.
https://qiita.com/maip0902/items/d80a302c95fb61af5070
https://dev.classmethod.jp/articles/tips-for-aws-cli-v2-on-container/
주로 AWS CLI v2에서 실행을 시작하려면less가 필요합니다.

해결책


큰 해결 방법으로 삼다
  • 호출기 해제
  • less 넣기
    두 가지 해결책이 있지만 난 후자가 해결했어.
  • Docker file을 다음과 같이 변경하여 해결
    Docker file(변경 후)
    FROM node:18.0.0
    
    # devcontainer上で操作するユーザーを指定
    ARG username="node"
    ARG ACCESS_KEY
    ARG SECRET_KEY
    
    # AWS CLIのインストール
    RUN curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
    RUN unzip awscliv2.zip
    RUN ./aws/install
    RUN rm -f awscliv2.zip
    
    # serverlessをinstall
    RUN npm i -g serverless
    
    # pingのインストール
    RUN apt-get update
    RUN apt-get install -y iputils-ping
    RUN apt-get install -y less
    
    # serverlessの認証情報を設定
    RUN serverless config credentials --provider aws --key $ACCESS_KEY --secret $SECRET_KEY
    
    기쁘고 축하할 만하다
    이런 건 기사로 쓰지 않으면 나중에 스스로 곤란해질 거야.

    좋은 웹페이지 즐겨찾기