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'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
Suivez les étapes ci-dessous pour essayer de démarrer / arrêter un service Web à l'aide de docker-compose
.
docker-compose
** 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
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 **
** 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
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
$ Docker-compose up -d
est OK, mais si vous voulez vérifier le journal, start
est bon.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
start
ou restart
.Recommended Posts