0

J'ai essayé plusieurs didacticiels pour exécuter mon application qui fonctionne simplement bien avec docker, django, nginx, postgres. J'ai mon fichier docker-compose.yml prêt, ne devrait-il pas être simple de l'expédier dans le nuage? J'ai essayé Elasticbeanstalk, en obtenant plusieurs erreurs qui sont difficiles à déboguer. AWS ne semble pas soutenir docker-compose.yml et je devrais utiliser leur Dockerrun.aws.json, j'ai essayé aussi ECS, mais il semble aussi ne pas être facile.impossible d'utiliser la distribution continue sur AWS pour une application django (nginx, psql)

Est-ce que quelqu'un connaît un tutoriel complet et complet sur ce sujet? En passant, j'utilise le code, et tous les tests fonctionnent bien, mais le déploiement échoue également tout le temps.

Répondre

1

Si docker, je recommande d'aller directement à ECS. Oui, ils ne supportent pas docker-composer, mais ECS est assez similaire. Visitez les sites suivants Github projet pour le déploiement django sur ECS

https://github.com/ethanmcc/django-ecs-deploy

Vous devriez également consulter à l'adresse suivante AWS docker-Compose ecs-cli utilitaire:

http://docs.aws.amazon.com/AmazonECS/latest/developerguide/cmd-ecs-cli-compose.html

Maintenant que je répondre à votre question, je voudrais vous suggérer de ne pas lâcher avec docker, en particulier votre base de données. IMO, l'une des principales valeurs d'AWS consiste à utiliser certains de leurs systèmes gérés, par exemple, en utilisant RDS pour gérer votre base de données Postgres, au lieu de vous soucier de maintenir votre propre système opérationnel 24h/24 et 7j/7. Même avec les fichiers statiques, la meilleure solution (et super bon marché) est d'utiliser S3, ou mieux, d'utiliser CloudFront.

Annonce: Consultez le lien suivant pour un modèle orienté que j'ai créé qui montre ma propre infrastructure, utilisée dans la production par au moins deux startups. Il utilise docker-composer localement, mais j'utilise Elastic Beanstalk (Python) + RDS + CloudFront pour la production, et montre la commande de déploiement unique pour le faire. Il est un peu plus compliqué que d'habitude, car il crée les fichiers statiques comme un projet autonome (à l'aide Gulp) et déploie directement à S3/CloudFront, puis copie le modèle basé sur le projet Django:

https://github.com/dkarchmer/django-aws-template