Моя нынешняя задача - заставить Travis развернуть наш проект Django + Docker-Compose при успешном объединении запроса на растяжение к нашей ветке Git master. Я проделал определенную работу по созданию нашего AWS CodeDeploy, поскольку Travis поддерживает его. Когда я попал в AppSpec и фактическую часть развертывания, сначала попробовал сценарий AfterInstall сделать docker-compose build
, а затем создать сценарий ApplicationStart docker-compose up
. Контейнеры, у которых есть изображения, вытащенные из Интернета, являются нашим контейнером PostgreSQL (с именем db
, изображение aidanlister/postgres-hstore
, которое является обычным изображением postgres
плюс расширение hstore), контейнер Redis (использует изображение redis
) и контейнер Selenium (изображение selenium/standalone-firefox
). Остальные два контейнера, web
и worker
, которые являются сервером Django и рабочим Celery, соответственно, используют один и тот же файл Docker для создания изображения. Основная команда:AWS: CodeDeploy для проекта Docker Compose?
CMD paver docker_run
который использует pavement.py
файл:
from paver.easy import task
from paver.easy import sh
@task
def docker_run():
migrate()
collectStatic()
updateRequirements()
startServer()
@task
def migrate():
sh('./manage.py makemigrations --noinput')
sh('./manage.py migrate --noinput')
@task
def collectStatic():
sh('./manage.py collectstatic --noinput')
# find any updates to existing packages, install any new packages
@task
def updateRequirements():
sh('pip install --upgrade -r requirements.txt')
@task
def startServer():
sh('./manage.py runserver 0.0.0.0:8000')
Вот что я (думаю я) нужно сделать случается каждый раз, когда запрос зычок слиты:
- Имейте Travis развертывание изменений с использованием CodeDeploy на основе
deploy
раздел в.travis.yml
с учетом нашей установки CodeDeploy - Начните наши контейнеры Docker на AWS после успешного развертывания, используя наш
docker-compose.yml
Как сделать этот второй шаг? Я уверен, что ECS на самом деле не то, что здесь нужно. Текущий статус сейчас - то, что я могу получить Docker с sudo service docker start
, но я не могу получить docker-compose up
, чтобы быть успешным. Хотя развертывания сообщаются как «успешные», это происходит только потому, что команда docker-compose up
выполняется в фоновом режиме в сценарии раздела службы проверки. Фактически, когда я пытаюсь сделать docker-compose up
вручную, когда ssh'd в экземпляр EC2, я застрял, строя один из контейнеров, прямо перед частью файла Docker CMD paver docker_run
.