dockerfile docker-compose.yml p> Je suis en mesure de construire une image à l'aide de la commande suivante p> si je fais base de données.yml Fichier P> docker-composition up code> dans le répertoire racine de projet mon application fonctionne bien et je peux voir deux conteneurs une pour mes rails app et autre pour postgres quand je faire
docker conteneur ls code>. J'ai observé que l'image Postgres est chargée à partir de la bibliothèque. P>
could not translate host name "db" to address: Name or service not known
3 Réponses :
sudo docker exécuté -p 3000: 3000 paperscammer_web code> ne démarrera que le serveur Web, vous devez exécuter
docker-composent code>:
Ouais, mais comment cette balance lors du déploiement dans des productions, Docker-compose Recherche de fichiers Docker, si vous suivez ce docs.docker.com/get-started/part3 . Les services définis dans Docker-Compose Fichier doivent mettre tous les services en tant que conteneurs.
Avec Composez, cela fonctionne bien, mais l'image d'application Rails ne fonctionne pas bien lorsque j'exécute Docker Run -p 3000: 3000 Paperscammer_Web. Vous devez être au courant Docker Compose créera une image puis commencer. Mais pour la production de déploiements de production produite par Docker Compose, la construction produit une image qui sera utilisée pour faire tourner des conteneurs.
Oui, mon application est maintenant capable de se connecter au service de base de données, mais la base de données n'est pas créée, une erreur de vingt
Fatal: Base de données "Paper_Scammer_Développement" n'existe pas, la commande Docker Run n'exécute pas Buundle Exec Rake DB: Créer comme mentionné dans le fichier Docker
Je pense que suite à cela devrait aider docs.docker.com/engine/examples/postgresql_service . Je dois ajouter créer des commandes de base de données et la sauter si la base de données existe déjà. Comment suggérez-vous? Avoir mon propre dockerfile pour créer une image Postgres.
Votre réponse m'a aidé à exécuter le service de base de données et à créer des liens, mais je ne peux pas connecter les migrations de la base de données avec la commande Docker Exécuter. Exécution sudo docker exécutée -p 3000: 3000 --Link dB: db paperScammer_web Bundle Exec Rake DB: Créer dB: migrer code> ne fonctionne que des migrations et sortez sans démarrer le conteneur.
Je ne comprends pas ce que tu veux dire mon image db je cours la commande sudo docker exécution - nom db -p 5432: 5432 -v ./tmp/db/db/postgresql/data postgres: 10 code> L'image juste et postgres est créée. Encore une fois, je ne pense pas que cela aura quelque chose à voir avec l'image de DB, car les migrations de rails doivent être exécutées lorsque l'image DB est filée dans le conteneur. Je suppose que la solution de contournement est autour de mon image web_app.
Lorsque vous utilisez D'autre part, lorsque vous utilisez aussi, la propriété En tant que remarque finale, si vous voulez que vos conteneurs puissent communiquer mutuellement, vous devez ajouter un réseau au fichier composant: p> Est également une bonne pratique pour ajouter un avec les options de thoose maintenant, les conteneurs peuvent communiquer avec leurs noms comme IPS / nom d'hôte: P> docker-compose up code> et
docker exécuter code> sont des commandes différentes. L'utilisation de ce dernier n'utilisera pas le fichier compose, seuls les paramètres passés à la commande.
docker exécuter code> Vous devez spécifier quels conteneurs que vous souhaitez exécuter spécifiquement, si vous voulez Exécutez les deux
dB code> et
Web code> Vous devez utiliser cette commande deux fois. p>
docker-compose up code> Vous exécutez tous les conteneurs spécifiés dans
docker-compose.yml code> avec toutes ses options. p>
dépend_on code> Spécifie simplement que le conteneur
Web code> sera lancé une fois que le conteneur
dB code> est lancé. P>
conteneur_name code> pour les référencer. P>
docker-compose up -d --build
Mais toujours, j'utilise le code source pour créer une image, je souhaite trouver une solution pour des images partagées.
Désolé, votre question n'est pas claire, que voulez-vous dire par «images partagées»? Images publiées dans Docker Hub?
Après avoir construit l'image, cette image sera enregistrée avec DockerHub et quelques outils de travail pour choisir l'image de DockerHub et Spin AWS ECS
Comme vous avez mentionné, je dois exécuter docker exécuter code> deux fois, cela fonctionne bien pour moi. Je suis maintenant bloqué avec comment exécuter des migrations de base de données comme «Docker Run Paperscammer Bundle Exec Rake DB: Migrate` ne dirige que des migrations et sortez sans démarrer le conteneur.
Peut être ça? Stackoverflow.com/Questtions/38089999 / ...
De plus, je suggère de modifier votre question et de le rendre plus clair, ajoutant ce que vous avez dit ici dans les commentaires, car c'est le problème réel.
ouais je vais mettre à jour et accepter la réponse, essayant simplement celui-ci
./ dockerfile fort> p> blockQuote>
xxx pré> ./ .env strong> p> blockQuote>
xxx pré> ./ docker-compose.yml strong> p> blockQuote>
xxx pré> ./ sh / dpottpoints / docker-enterrypoint.sh strong> p> blockQuote>
https://stackoverflow.com/a/59047028/4488252 p>
.git .gitignore README.md # # OS X # .DS_Store .AppleDouble .LSOverride # Icon must end with two \r Icon # Thumbnails ._* # Files that might appear on external disk .Spotlight-V100 .Trashes # Directories potentially created on remote AFP share .AppleDB .AppleDesktop Network Trash Folder Temporary Items .apdisk # # Rails # .env .env.sample *.rbc capybara-*.html log tmp db/*.sqlite3 db/*.sqlite3-journal public/system coverage/ spec/tmp **.orig .bundle .ruby-version .ruby-gemset .rvmrc # if using bower-rails ignore default bower_components path bower.json files vendor/assets/bower_components *.bowerrc bower.json
Avez-vous essayé de spécifier le port dans la base de données.yml?
Port: 5432 Code>
Vous pouvez voir que le conteneur Postgres ne fonctionne pas code>, pourquoi pas
Docker enregistre votre_postgres_container code> pour trouver le journal?