Создание контейнера aws cli для загрузки резервных копий базы данных django postgres на s3 - PullRequest
2 голосов
/ 05 октября 2019

Хорошо, это будет немного неловко, но я пытаюсь создать докерскую службу с aws cli, которая разделяет том с моим бэкэндом для хранения резервных копий.

Я видел такой подход в пакете django-cookiecutter

До сих пор я не мог заставить что-либо работать, и я действительно изо всех сил пытаюсь найти правильный подход. Я определил ключ доступа и т. Д. В моем docker-compose :

services:
  aws_cli:
    build:
      context: ./kitschoen_aws_docker
      dockerfile: Dockerfile
    environment:
      - AWS_ACCESS_KEY_ID=xxxxxxxxxxxx
      - AWS_SECRET_ACCESS_KEY=xxxxxxxxxxx
      - SQL_ENGINE=django.db.backends.postgresql
    volumes:
      - postgres_backup:/backup
volumes:
  postgres_backup:

и настроил Dockerfile :

FROM garland/aws-cli-docker:1.15.47

# ENTRYPOINT [ "/bin/bash", "-c", "aws configure --region=eu-central-1 --output=text" ]

закомментированная часть не работает, потому что у контейнера, похоже, нет консоли bash. Я совершенно потерян, буду очень признателен за любой намек в правильном направлении.

Ответы [ 2 ]

2 голосов
/ 05 октября 2019

Не смущайтесь, такого рода вещи могут показаться простыми, но оказываются разочаровывающе сложными. Мое первое предложение - попытаться изменить точку входа на /bin/sh, чтобы проверить, доступна ли она. Похоже, что используемое вами изображение основано на Alpine , поэтому должен быть доступен /bin/sh, который поможет вам решить эту проблему.

0 голосов
/ 07 октября 2019

Как отмечено помечено, это изображение на альпийской основе, поэтому попробуйте с sh, но реальная проблема запустит его в этой строке

 ENTRYPOINT [ "/bin/bash", "-c", "aws configure --region=eu-central-1 --output=text" ]

, он настроит aws keys, но как только ключи настроеныконтейнер умрет.

Так что я буду просто привязывать хост credentials, вы получите две вещи

  • Уже настроенные ключи
  • Существующие настроенные профили

docker-compose

version: '3'

services:
  aws_cli:
    image: garland/aws-cli-docker:1.15.47
    volumes:
      - /home/user/.aws/:/root/.aws

Итак, теперь запустите эту команду или любой другой процесс, который вам нужен.

docker-compose run aws_cli aws s3api list-buckets --query "Buckets[].Name" --profile test

или любой скрипт на Python,

docker-compose run aws_cli python my.py

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...