Rumah > Operasi dan penyelenggaraan > operasi dan penyelenggaraan linux > Cara menggunakan Docker untuk penyepaduan berterusan dan penggunaan berterusan

Cara menggunakan Docker untuk penyepaduan berterusan dan penggunaan berterusan

WBOY
Lepaskan: 2023-11-08 13:28:55
asal
1566 orang telah melayarinya

Cara menggunakan Docker untuk penyepaduan berterusan dan penggunaan berterusan

Cara menggunakan Docker untuk penyepaduan berterusan dan penggunaan berterusan

Dengan perkembangan pesat pembangunan perisian, penyepaduan berterusan dan penggunaan berterusan telah menjadi bahagian yang amat diperlukan dalam proses pembangunan perisian moden. Sebagai platform kontena, Docker boleh memudahkan proses penyepaduan berterusan dan penggunaan berterusan. Artikel ini akan memperkenalkan cara menggunakan Docker untuk penyepaduan berterusan dan penggunaan berterusan, dan menyediakan contoh kod khusus.

1. Integrasi Berterusan

Integrasi berterusan merujuk kepada pengubahsuaian kod pembangun yang kerap digabungkan ke dalam repositori kongsi, dan kerap membina serta mengujinya. Menggunakan Docker untuk penyepaduan berterusan boleh memudahkan konfigurasi persekitaran dan membina proses serta meningkatkan kecekapan pembangunan.

  1. Buat Dockerfile

Dockerfile ialah fail skrip yang digunakan untuk membina imej Docker. Buat fail bernama Dockerfile dalam direktori akar projek dan tambahkan contoh kod berikut:

# 使用官方的 Node.js 镜像作为基础镜像
FROM node:alpine

# 设置工作目录
WORKDIR /app

# 复制 package.json 和 package-lock.json 到工作目录
COPY package*.json ./

# 安装项目依赖
RUN npm install

# 将项目文件复制到工作目录
COPY . .

# 暴露端口
EXPOSE 3000

# 运行应用
CMD ["npm", "start"]
Salin selepas log masuk

Dockerfile ini mentakrifkan imej berasaskan Node.js dan memasang kebergantungan projek ke dalam imej dan fail aplikasi dan salin kod ke dalam direktori kerja . Akhir sekali, dedahkan port dan jalankan aplikasi.

  1. Bina imej Docker

Dalam direktori akar projek, gunakan arahan berikut untuk membina imej Docker:

docker build -t my-app .
Salin selepas log masuk

Arahan ini akan membina imej bernama my-app berdasarkan takrifan fail Dockerfile.

  1. Pengujian kontena

Buat fail yang dipanggil docker-compose.test.yml dalam direktori akar projek dan tambah contoh kod berikut:

version: '3'
services:
  app:
    build:
      context: .
      dockerfile: Dockerfile
    depends_on:
      - db
    command: npm run test
  db:
    image: mongo
Salin selepas log masuk

Fail docker-compose.test.yml ini mentakrifkan dua Perkhidmatan, satu ialah perkhidmatan aplikasi, iaitu perkhidmatan aplikasi kami, dan satu lagi ialah perkhidmatan db, iaitu perkhidmatan pangkalan data kami. Fail ini mengarahkan Docker untuk menjalankan dua perkhidmatan dan menjalankan arahan ujian dalam perkhidmatan aplikasi.

Dalam direktori akar projek, gunakan arahan berikut untuk menjalankan bekas ujian:

docker-compose -f docker-compose.test.yml up
Salin selepas log masuk

Arahan ini akan memulakan perkhidmatan apl dan db dan menjalankan arahan ujian.

  1. Automated Continuous Integration

Tujuan penyepaduan berterusan adalah untuk dengan cepat dan kerap menggabungkan perubahan kod pembangun ke dalam kod utama dan melaksanakan binaan dan ujian automatik. Anda boleh menggunakan alatan seperti Jenkins dan GitLab CI untuk melaksanakan penyepaduan berterusan automatik.

Ambil Jenkins sebagai contoh, buat fail bernama Jenkinsfile, dan tambahkan contoh kod berikut:

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'
            }
        }
    }
}
Salin selepas log masuk

Jenkinsfile ini mentakrifkan saluran paip Jenkins yang mengandungi dua peringkat: bina dan ujian. Jalankan arahan docker build命令构建Docker镜像,在测试阶段执行docker-compose semasa fasa binaan untuk memulakan bekas ujian.

Tambah fail Jenkinsfile pada direktori akar projek dan konfigurasikan pelayan Jenkins untuk penyepaduan berterusan automatik.

2. Pengerahan berterusan

Pengedaran berterusan merujuk kepada penggunaan kod secara automatik ke persekitaran pengeluaran selepas melengkapkan penyepaduan berterusan. Menggunakan Docker untuk penggunaan berterusan boleh memudahkan proses penempatan.

  1. Buat Imej Docker

Menggunakan Fail Docker yang dibuat dalam langkah sebelumnya, bina imej Docker yang mengandungi kod aplikasi.

  1. Menulis fail docker-compose.yml

Buat fail yang dipanggil docker-compose.yml dalam direktori akar projek dan tambah contoh kod berikut:

version: '3'
services:
  app:
    image: my-app:latest
    restart: always
    ports:
      - 80:3000
Salin selepas log masuk

Fail docker-compose.yml ini mengarahkan Docker untuk menjalankan perkhidmatan aplikasi, dan gunakan imej aplikasi saya yang baru dibina sebagai imej asasnya. Di samping itu, pemetaan port dan perkhidmatan lain boleh dikonfigurasikan.

  1. Kerahkan aplikasi

Gunakan arahan berikut untuk menggunakan aplikasi dalam persekitaran pengeluaran:

docker-compose up -d
Salin selepas log masuk

Arahan ini akan memulakan perkhidmatan aplikasi di latar belakang dan mendedahkannya kepada port 80 hos.

Di atas ialah langkah khusus dan contoh kod tentang cara menggunakan Docker untuk penyepaduan berterusan dan penggunaan berterusan. Melalui Docker, anda boleh memudahkan konfigurasi persekitaran dan proses penggunaan, meningkatkan kecekapan pembangunan dan kebolehpercayaan aplikasi.

Atas ialah kandungan terperinci Cara menggunakan Docker untuk penyepaduan berterusan dan penggunaan berterusan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan