Optimierung der Web-Systementwicklung mit Docker-Compose und Git

Einführung

Ich habe einen Artikel mit dem Titel [[Effiziente Web-Systementwicklung mit Containern und Git]] veröffentlicht (https://qiita.com/smiler5617/items/f34382145ec426820710), aber danach habe ich auch versucht, "Docker-Compose" zu verwenden Ich habe es versucht, also werde ich den Inhalt zu diesem Zeitpunkt als Memo aufschreiben.

Ausführungsumgebung

[Docker-Installationsumgebung] ・ Ubuntu 20.04 LTS (auf GCP) ・ Docker 19.03.13 ・ Docker-Compose 1.25.0

[Containerumgebung] ・ Image Ubuntu: 20.04 -Apache 2.4.41 * Die neueste Version zum Zeitpunkt der Installation, da die Version nicht angegeben ist

Um es zu versuchen

Führen Sie die folgenden Schritte aus, um zu versuchen, einen Webdienst mit "Docker-Compose" zu starten / zu stoppen.

    1. Umweltvorbereitung
  1. Erstellen Sie ein Repository auf Github
    1. Auf der Hostseite vorbereitete Dateien
  2. Betriebsbestätigung mit "Docker-Compose"

1. 1. Umwelt vorbereiten

** Erstellen Sie eine VM-Instanz auf GCP **

** Update des Paketverwaltungstools **

$ sudo apt update

** Git installieren **

python


$ sudo apt install -y git

** Docker installieren **

** Docker-Compose installieren **

python


$ sudo apt install -y docker-compose 

Überprüfen Sie, ob die Installation erfolgreich ist

python


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

2. Erstellen Sie ein Repository auf Github

Gehen Sie bei Github wie folgt vor:

** ■ Erstellen Sie ein Repository für Public **

** ■ Erstellen Sie einen "App" -Ordner direkt unter dem erstellten Repository **

** ■ Erstellen Sie index.html im Ordner "App" **

** ■ Schneiden Sie den Entwicklungszweig ab **

3. 3. Auf der Hostseite vorbereitete Dateien

** Bereiten Sie Dateien mit der folgenden Verzeichnisstruktur vor **

./docker-compose.yml ./Dockerfile ./site_config/   - demo_site.conf
./mount/   - main/

- dev/

Verzeichnis erstellen


#################################################
#Verzeichnis zum Speichern von Site-Konfigurations-Einstellungsdateien#
#################################################
$ sudo mkdir ./site_config


################################
#Erstellen Sie ein Verzeichnis zum Mounten#
################################
$ sudo mkdir ./mount

#Speicherort des Quellcodes
$ sudo mkdir ./mount/main
$ sudo mkdir ./mount/dev

Klonen Sie die Quelle auf 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

** Erstellen Sie jede Datei wie folgt **

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


#Holen Sie sich das Basis-Image
FROM ubuntu:20.04

#Installation der erforderlichen Pakete
RUN apt update
RUN apt install -y tzdata
RUN apt install -y apache2

#Laden Sie die Site-Einstellungen
COPY ./site_config/demo_site.conf /etc/apache2/sites-available/
RUN a2dissite 000-default
RUN a2ensite demo_site

#Erstellen Sie ein Verzeichnis zum Mounten
RUN mkdir /var/www/html/App

#Port öffnen
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. Betriebsbestätigung mit "Docker-Compose"

** Alle Dienste starten **

python


$ docker-compose up

Wenn Sie auf die folgende Umgebung zugreifen können, können Sie sie vorerst starten. http: // [externe IP der VM (globale IP-Adresse)]: 8080 / http: // [externe VM-IP (globale IP-Adresse)]: 8081 /

** Start stop ** Ctrl + C

** Im Hintergrund laufen **

python


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

Halt

python


$ docker-compose stop
Beenden des [Google-Kontonamens]_web_dev_1  ... 
Beenden des [Google-Kontonamens]_web_main_1 ... 

** Sie können auch angeben, ob der Dienst gestartet oder gestoppt werden soll **

python


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

$ docker-compose stop web_main
Beenden des [Google-Kontonamens]_web_main_1 ... 

** Stop & Remove Service **

python


$ docker-compose down

Recommended Posts

Optimierung der Web-Systementwicklung mit Docker-Compose und Git
Bereiten Sie mit Docker-Compose eine Nuxt (Web) + Laravel (API) -Entwicklungsumgebung im selben Repository vor
Aufbau einer Django-Entwicklungsumgebung mit Docker-Compose (persönliches Memorandum)
Umgeschaltete Eigenschaftendateien für Entwicklung und Produktion mit JMockit
[Java] Entwicklung mit mehreren Dateien mittels Paket und Import