Relier les conteneurs django et mysql à l'aide de docker-compose
J'ai suivi avec le docker-composer tutoriel ici (liens entre django et postgresql conteneur). Bien que j'ai été en mesure de passer le tutoriel, je suis toutefois pas en mesure de procéder à répéter les mêmes
en utilisant une base de données mysql contenant.
Ce qui suit sont mes dockerfile et docker-composer.yml
`
db:
image: mysql
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
links:
- db:db
`
dockerfile
FROM python:2.7
RUN mkdir /code
WORKDIR /code
RUN pip install mysql-python
RUN pip install django
Ils reposent tous deux très bien quand je ne docker-compose up
mais il semble que le db variables d'environnement ne sont pas transmises à la django conteneur depuis quand je lance os.environ.keys()
dans un de mes django points de vue, je ne peux pas voir tout de la DB_* variables d'environnement.
Donc n'mysql nécessitent une installation à une autre ou j'ai loupé quelque chose.
Merci.
[MODIFIER]
Docker composer version
docker-compose version: 1.3.0
CPython version: 2.7.9
OpenSSL version: OpenSSL 1.0.1e 11 Feb 2013
Docker version
Docker version 1.6.2, build 7c8fca2
source d'informationauteur michaelmwangi
Vous devez vous connecter pour publier un commentaire.
Dans Django settings.py fichier assurez-vous que vous avez quelque chose comme:
puis dans votre docker-composer.yml fichier assurez-vous que vous avez quelque chose le long des lignes de:
alors que par le menu fixe/django tutoriel vous êtes d'exécution suivant le nouveau ci-dessous pour tout reconstruire et les choses devraient commencer à travailler
vous n'avez pas besoin de vous soucier de variable d'environnement. Lors de la liaison des conteneurs ensemble, il vous suffit d'utiliser le conteneur alias définis par le lien, comme si c'était le nom d'hôte.
par exemple, si votre
docker-compose.yml
fichier:Dans votre django paramètres que vous auriez à définir la base de données de l'hôte à
mydb
.Vous devez d'abord modifier le fichier de paramètres...
Alors si vous avez utilisé le
docker-compose
correctement à la commande, les conteneurs doivent être liées, et cela devrait permettre de résoudre le nom d'hôtedb
correctement selon lalinks
dans ledocker-compose.yml
fichier.Encore, si vous voulez vérifier l'environnement...