docker-compose pour seulement certains conteneurs

J’ai un docker-compose.yml qui contient plusieurs conteneurs. Trois d’entre eux sont destinés à mon application (client, serveur et firebase database) et le rest concerne divers outils de développement (par exemple, psql, npm, manage.py, etc.). Quand je docker-compose up tous sont démarrés, mais je veux seulement que les trois principaux commencent. En raison des liens que j’ai spécifiés, je ne peux lancer que les trois avec docker-compose up client mais la sortie est uniquement à partir de ce conteneur. Y a-t-il un moyen d’effectuer l’une des opérations suivantes:

  1. Dites à docker-composer quels conteneurs devraient être démarrés par docker-compose up
  2. Obtenir la sortie de tous les conteneurs liés du docker-compose up client

Vous pouvez démarrer des conteneurs en utilisant:

 $ docker-compose up -d client 

Cela exécutera les conteneurs en arrière-plan et la sortie sera disponible à partir de

 $ docker-compose logs 

et il sera composé de tous vos conteneurs démarrés

Vous ne voulez généralement pas le faire. Avec Docker Compose, vous définissez les services qui composent votre application. npm et manage.py sont que des commandes de gestion. Vous n’avez pas besoin d’un conteneur pour eux. Si vous devez, par exemple, créer vos tables de firebase database avec manage.py , tout ce que vous avez à faire est de:

 docker-compose run client python manage.py create_db 

Pensez-y comme le dynos unique utilisé par Heroku.

Si vous devez vraiment traiter ces commandes de gestion comme des conteneurs distincts (et utiliser Docker Compose pour ceux-ci), vous pouvez créer un fichier .yml distinct et démarrer Docker Compose à l’aide de la commande suivante:

 docker-compose up -f my_custom_docker_compose.yml 

Pour démarrer un service particulier défini dans votre fichier docker-compose. par exemple si vous avez un docker-compose.yml

 sudo docker-compose start db 

donné un fichier de composition comme:

 version: '3.3' services: db: image: mysql:5.7 ports: - "3306:3306" volumes: - ./db_data:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: yourPassword MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: yourPassword wordpress: depends_on: - db image: wordpress:latest ports: - "80:80" volumes: - ./l3html:/var/www/html restart: always environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: yourPassword volumes: db_data: l3html: 

Parfois, vous souhaitez uniquement démarrer mySQL (il suffit parfois de remplir une firebase database) avant de démarrer toute votre suite. – N’oubliez pas d’utiliser docker vo