Rationalisation du développement de système Web à l'aide de docker-compose et de Git

introduction

J'ai posté un article avec le titre [Efficacité du développement de système Web en utilisant des conteneurs et Git], mais après cela, j'ai également essayé d'utiliser docker-compose Je l'ai essayé, alors j'écrirai le contenu à ce moment-là sous forme de mémo.

Environnement d'exécution

[Environnement d'installation Docker] ・ Ubuntu 20.04 LTS (sur GCP) ・ Docker 19.03.13 ・ Docker-compose 1.25.0

[Environnement du conteneur] ・ Image Ubuntu: 20.04 -Apache 2.4.41 * La dernière version au moment de l'installation car la version n'est pas spécifiée

Pour l'essayer

Suivez les étapes ci-dessous pour essayer de démarrer / arrêter un service Web à l'aide de docker-compose.

    1. Préparation environnementale
  1. Créer un référentiel sur Github
    1. Fichiers préparés côté hôte
  2. Confirmation d'opération à l'aide de docker-compose

1. 1. Préparer l'environnement

** Créer une instance de VM sur GCP **

** Mise à jour de l'outil de gestion des packages **

$ sudo apt update

** Installez git **

python


$ sudo apt install -y git

** Installation de docker **

** Installation de docker-compose **

python


$ sudo apt install -y docker-compose 

Vérifiez si l'installation a réussi

python


$ ddocker-compose --version
docker-compose version 1.25.0, build unknown

2. Créer un référentiel sur Github

Procédez comme suit sur Github:

** ■ Créer un référentiel pour Public **

** ■ Créez un dossier "App" directement sous le référentiel créé **

** ■ Créez index.html dans le dossier "App" **

** ■ Coupez la branche de développement **

3. 3. Fichiers préparés côté hôte

** Préparez les fichiers avec la structure de répertoires suivante **

./docker-compose.yml ./Dockerfile ./site_config/   - demo_site.conf
./mount/   - main/ --Cloner la branche main sur Github

- dev/ --Cloner la branche dev sur Github

Créer le répertoire


#################################################
#Répertoire de stockage des fichiers de paramètres de configuration du site#
#################################################
$ sudo mkdir ./site_config


################################
#Créer un répertoire pour le montage#
################################
$ sudo mkdir ./mount

#Emplacement de stockage du code source
$ sudo mkdir ./mount/main
$ sudo mkdir ./mount/dev

Cloner la source sur Github


$ sudo git clone --depth 1 -b main https://github.com/Smiler5617/test_websys.git ./mount/main
$ sudo git clone --depth 1 -b dev https://github.com/Smiler5617/test_websys.git ./mount/dev

** Créez chaque fichier comme ci-dessous **

demo_site.conf


<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html/App/
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Dockerfile


#Obtenir l'image de base
FROM ubuntu:20.04

#Installation des packages requis
RUN apt update
RUN apt install -y tzdata
RUN apt install -y apache2

#Charger les paramètres du site
COPY ./site_config/demo_site.conf /etc/apache2/sites-available/
RUN a2dissite 000-default
RUN a2ensite demo_site

#Créer un répertoire pour le montage
RUN mkdir /var/www/html/App

#Port ouvert
EXPOSE 80

CMD ["apachectl", "-D", "FOREGROUND"]

docker-compose.yml


version: '3.7'

services:
  web_main:
    build:
      context: .
      dockerfile: Dockerfile
    volumes:
      - ./mount/main/App:/var/www/html/App
    ports:
      - 8080:80

  web_dev:
    build:
      context: .
      dockerfile: Dockerfile
    volumes:
      - ./mount/dev/App:/var/www/html/App
    ports:
      - 8081:80

4. Confirmation d'opération à l'aide de docker-compose

** Lancer tous les services **

python


$ docker-compose up

Si vous pouvez accéder à l'environnement suivant, vous pouvez le démarrer pour le moment. http: // [IP externe de la VM (adresse IP globale)]: 8080 / http: // [IP externe de la VM (adresse IP globale)]: 8081 /

** Commencer arrêter ** Ctrl + C

** Courir en arrière-plan **

python


$ docker-compose start
Starting web_main ... done
Starting web_dev  ... done

Arrêtez

python


$ docker-compose stop
Arrêt de [nom du compte Google]_web_dev_1  ... 
Arrêt de [nom du compte Google]_web_main_1 ... 

** Vous pouvez également spécifier de démarrer ou d'arrêter le service **

python


$ docker-compose start web_main
Starting web_main ... done

$ docker-compose stop web_main
Arrêt de [nom du compte Google]_web_main_1 ... 

** Arrêter et supprimer le service **

python


$ docker-compose down

Recommended Posts

Rationalisation du développement de système Web à l'aide de docker-compose et de Git
Développement d'équipe avec Git (édition eclipse)
Préparez un environnement de développement Nuxt (web) + Laravel (API) dans le même référentiel à l'aide de docker-compose
Construction de l'environnement de développement Django à l'aide de Docker-compose (mémorandum personnel)
Développement d'équipe avec Git (édition eclipse)
Fichiers de propriétés commutés pour le développement et la production à l'aide de JMockit
[Java] Développement avec plusieurs fichiers en utilisant package et import