So verwenden Sie Docker für kontinuierliche Integration und kontinuierliche Bereitstellung
Mit der rasanten Entwicklung der Softwareentwicklung sind kontinuierliche Integration und kontinuierliche Bereitstellung zu einem unverzichtbaren Bestandteil des modernen Softwareentwicklungsprozesses geworden. Als Containerisierungsplattform kann Docker den Prozess der kontinuierlichen Integration und kontinuierlichen Bereitstellung erheblich vereinfachen. In diesem Artikel wird die Verwendung von Docker für kontinuierliche Integration und kontinuierliche Bereitstellung vorgestellt und spezifische Codebeispiele bereitgestellt.
1. Kontinuierliche Integration
Kontinuierliche Integration bezieht sich auf die häufige Zusammenführung der Codeänderungen von Entwicklern in einem gemeinsamen Repository und deren häufiges Erstellen und Testen. Die Verwendung von Docker für die kontinuierliche Integration kann die Umgebungskonfiguration und den Erstellungsprozess vereinfachen und die Entwicklungseffizienz verbessern.
Dockerfile ist eine Skriptdatei, die zum Erstellen eines Docker-Images verwendet wird. Erstellen Sie eine Datei mit dem Namen Dockerfile im Stammverzeichnis des Projekts und fügen Sie das folgende Codebeispiel hinzu:
# 使用官方的 Node.js 镜像作为基础镜像 FROM node:alpine # 设置工作目录 WORKDIR /app # 复制 package.json 和 package-lock.json 到工作目录 COPY package*.json ./ # 安装项目依赖 RUN npm install # 将项目文件复制到工作目录 COPY . . # 暴露端口 EXPOSE 3000 # 运行应用 CMD ["npm", "start"]
Diese Dockerfile definiert ein Node.js-basiertes Image und installiert die Abhängigkeiten des Projekts im Image und in den Dateien der Anwendung und kopiert den Code in das Arbeitsverzeichnis . Stellen Sie abschließend den Port bereit und führen Sie die Anwendung aus.
Verwenden Sie im Stammverzeichnis des Projekts den folgenden Befehl, um das Docker-Image zu erstellen:
docker build -t my-app .
Dieser Befehl erstellt ein Image mit dem Namen my-app basierend auf der Definition der Dockerfile-Datei.
Erstellen Sie eine Datei namens docker-compose.test.yml im Stammverzeichnis des Projekts und fügen Sie das folgende Codebeispiel hinzu:
version: '3' services: app: build: context: . dockerfile: Dockerfile depends_on: - db command: npm run test db: image: mongo
Diese Datei docker-compose.test.yml definiert zwei Dienste, einer ist der Der App-Dienst ist unser Anwendungsdienst und der andere ist der DB-Dienst, der unser Datenbankdienst ist. Diese Datei weist Docker an, zwei Dienste auszuführen und Testbefehle im App-Dienst auszuführen.
Verwenden Sie im Stammverzeichnis des Projekts den folgenden Befehl, um den Testcontainer auszuführen:
docker-compose -f docker-compose.test.yml up
Dieser Befehl startet die App- und DB-Dienste und führt den Testbefehl aus.
Der Zweck der kontinuierlichen Integration besteht darin, die Codeänderungen der Entwickler schnell und häufig in den Hauptcode zu integrieren und automatisierte Builds und Tests durchzuführen. Sie können Tools wie Jenkins und GitLab CI verwenden, um eine automatisierte kontinuierliche Integration zu implementieren.
Nehmen Sie Jenkins als Beispiel, erstellen Sie eine Datei mit dem Namen Jenkinsfile und fügen Sie das folgende Codebeispiel hinzu:
pipeline { agent any stages { stage('Build') { steps { sh 'docker build -t my-app .' } } stage('Test') { steps { sh 'docker-compose -f docker-compose.test.yml up' } } } }
Diese Jenkins-Datei definiert eine Jenkins-Pipeline, die zwei Phasen enthält: Erstellen und Testen. Führen Sie den Befehl docker build
命令构建Docker镜像,在测试阶段执行docker-compose
während der Build-Phase aus, um den Testcontainer zu starten.
Fügen Sie die Jenkinsfile-Datei zum Stammverzeichnis des Projekts hinzu und konfigurieren Sie den Jenkins-Server für die automatisierte kontinuierliche Integration.
2. Kontinuierliche Bereitstellung
Kontinuierliche Bereitstellung bezieht sich auf die automatische Bereitstellung von Code in der Produktionsumgebung nach Abschluss der kontinuierlichen Integration. Die Verwendung von Docker für die kontinuierliche Bereitstellung kann den Bereitstellungsprozess erheblich vereinfachen.
Erstellen Sie mithilfe der in den vorherigen Schritten erstellten Docker-Datei ein Docker-Image, das den Anwendungscode enthält.
Erstellen Sie eine Datei mit dem Namen „docker-compose.yml“ im Stammverzeichnis des Projekts und fügen Sie das folgende Codebeispiel hinzu:
version: '3' services: app: image: my-app:latest restart: always ports: - 80:3000
Diese Datei „docker-compose.yml“ weist Docker an, eine Datei auszuführen App-Dienst und verwenden Sie das soeben erstellte My-App-Image als Basis-Image. Darüber hinaus können Portmapping und andere Dienste konfiguriert werden.
Verwenden Sie den folgenden Befehl, um die Anwendung in der Produktionsumgebung bereitzustellen:
docker-compose up -d
Dieser Befehl startet den App-Dienst im Hintergrund und stellt ihn Port 80 des Hosts zur Verfügung.
Das Obige sind die spezifischen Schritte und Codebeispiele zur Verwendung von Docker für kontinuierliche Integration und kontinuierliche Bereitstellung. Mit Docker können Sie den Umgebungskonfigurations- und Bereitstellungsprozess vereinfachen und die Entwicklungseffizienz und Anwendungszuverlässigkeit verbessern.
Das obige ist der detaillierte Inhalt vonSo verwenden Sie Docker für kontinuierliche Integration und kontinuierliche Bereitstellung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!