Créer un environnement Node.js avec Docker Compose

Motivation

Je voulais pratiquer Create React App un petit détour sans polluer l'environnement local. Par conséquent, nous voulions créer un environnement comme le titre.

Structure du répertoire final

Structure du répertoire final


node-docker/
    |--docker-compose.yml
    |--node/
        |--app/

docker-compose.yml

Présentation de Docker Compose Compose est un outil pour les applications Docker qui définissent et exécutent plusieurs conteneurs.

Tout d'abord, créez le dossier de projet node-docker et créez le fichier docker compose.yml ici.

Structure de répertoire actuelle


node-docker/
    |--docker-compose.yml

docker-compose.yml


version: '3'
services:
  node:
    image: node:14.9.0-alpine3.10
    container_name: node
    volumes:
      - ./node/app:/app
    tty: true
    ports:
      - 3000:3000

version Version du format de fichier de docker-compose.yml services Vous pouvez définir chaque conteneur en tant que service. node Nom du service image Spécifie l'image à partir de laquelle le conteneur sera exécuté. Si l'image n'existe pas, Compose essaiera de l'extraire du Docker Hub. Pour créer une image à partir de Dockerfile, par exemple, créez Dockerfile sous le répertoire node et spécifiez comme suit. build: ./node container_name Spécifiez un nom de conteneur personnalisé au lieu du nom généré par défaut. Par défaut, il sera nommé node-docker_node_1. volumes Partagez le chemin local (à gauche) et le chemin du conteneur (à droite). tty Spécifie s'il faut démarrer le terminal. (Peut être)

ports Publiez le port. Spécifiez l'hôte et le port (hôte: conteneur) ou spécifiez uniquement le port du conteneur (le port côté hôte est sélectionné au hasard). expose expose le port et n'est accessible qu'entre les services liés.

Créer et démarrer un conteneur

Maintenant que vous avez les fichiers nécessaires, créons et démarrons le conteneur. Si vous voulez créer une image à partir de Dockerfile, vous devez faire Docker-compose build, mais cette fois vous n'en avez pas besoin car vous obtiendrez l'image déjà construite à distance. Le travail se fait sur le répertoire où se trouve docker-compose.yml.

terminal


$ docker-compose up -d

L'option d lui permet d'être lancé en arrière-plan.

Entrez le conteneur de nœuds

Maintenant que l'environnement de nœuds est en place, l'environnement de nœuds se trouve sur un conteneur, vous devez donc y travailler. Pour cela, démarrez le shell et le terminal sur le conteneur en utilisant la commande exec qui peut exécuter la commande spécifiée dans le conteneur en cours d'exécution.

terminal


$ docker-compose exec node sh

La structure du répertoire à l'intérieur du conteneur est la suivante, et comme il a été spécifié dans docker-compose.yml, le répertoire app dans le conteneur et le répertoire local node / app correspondent.

Structure de répertoire dans le conteneur


/
    |--app
    |--bin
    |--dev
    |--home
    |--lib
    |--media
    |--mnt
    |--opt
    |--proc
    |--root
    |--run
    |--sbin
    |--srv
    |--sys
    |--tmp
    |--usr
    |--var

Je pense qu'il est préférable de travailler dans le répertoire des applications qui peut être partagé localement.

référence

Compose file version 3 reference Référence du fichier de composition Docker Compose - Référence docker-compose.yml [Pour les débutants] Construction de l'environnement de développement Easy Node.js avec Docker (2)

Recommended Posts

Créer un environnement Node.js avec Docker Compose
[Docker] Construction de l'environnement Rails 5.2 avec docker
Créer un environnement Node.js avec Docker
Construction d'environnement avec Docker pour les débutants
[Construction de l'environnement avec Docker] Rails 6 et MySQL 8
Construction de l'environnement GPU avec Docker [version d'octobre 2020]
Construction d'environnement de rails avec Docker (apocalypse personnelle)
Construction de l'environnement de développement Laravel avec Docker (Mac)
Construire un environnement Rails 6 + MySQL avec Docker compose
[Docker] Créez un environnement Node.js + express + webpack avec Docker
Construire un environnement pour Laravel + MySQL + phpMyadmin avec Docker
Construction de l'environnement Rails Docker
Procédure de construction et de développement de l'environnement local Wordpress avec Docker
Mémo de construction de l'environnement MySQL 5.7 (Docker)
Mémo de construction de l'environnement Redmine (Docker)
Créer un environnement Docker avec WSL
Construction de l'environnement Docker × Spring Boot
[Docker] postgres, construction de l'environnement pgadmin4
Création d'un environnement de base de données avec Docker dans Spring Boot (IntellJ)
Créez un environnement Vue3 avec Docker!
Créer un environnement local Couchbase avec Docker
Construction de l'environnement d'utilisation Laravel + Docker Laradock
Créer un environnement de vérification SolrCloud avec Docker
WordPress avec Docker Compose sur CentOS 8
Rails sur la procédure de construction de l'environnement Docker
Créez un environnement de développement d'applications Rails avec Docker [Docker, Rails, Puma, Nginx, MySQL]
Créez un environnement Docker + Laravel avec Laradock
Création d'un environnement de développement pour Ruby on Rails à l'aide de Docker + VSCode (Remote Container)
Construire un environnement PostgreSQL avec Docker (de la configuration à juste avant le développement)
Créer un environnement de développement pour Django + MySQL + nginx avec Docker Compose
Procédure de construction de l'environnement Docker "Rails 6 x MySQL 8" à partager avec les équipes
Apprentissage des instructions SQL ~ Construction de l'environnement ~ Docker + MySQL
Construction de Rails 6 et environnement PostgreSQL avec Docker
Sapper × Go (écho) × Construction de l'environnement de développement Docker
Créer un environnement de développement PureScript avec Docker
Modifier Mysql avec des commandes dans l'environnement Docker
Créer un environnement de développement Spring Boot-gradle-mysql avec Docker
[Docker] Construction de l'environnement de développement Rails6 / Ruby2.7 / MySQL8
Construction de l'environnement de développement Java Spring Boot + Docker
Créer un environnement de développement Wordpress avec Docker
[Docker] Construisez l'environnement d'exécution de Jupyter Lab avec Docker
Créer un environnement avec Docker sur AWS