GNU/Linux >> Belajar Linux >  >> Panels >> Docker

Cara Menggunakan Profil Layanan untuk Menyederhanakan Tumpukan di Docker Compose

Docker Compose sekarang mendukung profil untuk penggunaan layanan secara selektif. Layanan di docker-compose.yml . Anda dapat ditautkan ke satu atau lebih profil bernama. Meneruskan nama profil ke docker-compose up hanya akan memulai layanan di profil itu, memungkinkan Anda membuat varian tumpukan untuk lingkungan dan konfigurasi tertentu.

Compose sebelumnya berfokus untuk mendefinisikan satu tumpukan yang merupakan distribusi kanonik dari aplikasi Anda. Profil menambahkan lebih banyak ruang untuk menyesuaikan bagian tumpukan mana yang akan digunakan, membuat rangkaian layanan yang kompleks menjadi lebih modular dan dapat dikonfigurasi.

Mengapa Menggunakan Profil?

Penggunaan profil sepenuhnya opsional. File Docker Compose Anda yang ada akan terus berfungsi dan tidak perlu langsung mengadopsi profil.

Profil layanan mengatasi beberapa frustrasi umum dengan alur pengembangan dan pengujian Docker Compose. Anda mungkin memiliki layanan yang hanya ingin Anda gunakan dalam pengembangan, seperti wadah debug atau layanan logging. Saat Anda dalam produksi, Anda tidak memerlukan layanan tersebut dan ingin menghindari memulainya.

Sebelumnya, untuk mencapai ini diperlukan pemisahan definisi layanan Anda di beberapa file. Anda kemudian akan membutuhkan up yang berat perintah untuk memulai semuanya dalam pengembangan:

# docker-compose.ymlversion:"3"services:app:image:my-app:latest # docker-compose-dev.ymlversion:"3"services:debug:image:my-app-debug:latest 
# mulai di productiondocker-compose up -d# mulai di developmentdocker-compose -f docker-compose.yml -f docker-compose-dev.yml up -d

Profil memungkinkan Anda menggabungkan kedua definisi layanan menjadi satu file. Anda dapat menggunakan flag atau variabel lingkungan untuk memilih profil tertentu, tanpa mengetikkan jalur file secara manual. Ini menciptakan pengalaman yang lebih nyaman tanpa kerumitan untuk mendokumentasikan, menulis, dan menjalankan.

Mendefinisikan Profil

Profil dibuat dengan menyetel profiles bidang pada layanan di docker-compose.yml your Anda . Profil ditentukan sebagai daftar. Setiap layanan dapat diberikan satu atau banyak profil.

versi:"3" layanan:aplikasi:gambar:aplikasi saya:debug terbaru:gambar:aplikasi-saya-debug:profil terbaru:- dev

Instance profil dibuat secara implisit dari nama yang diberikan ke profiles Anda bidang. Layanan yang berbagi profil akan bergabung secara otomatis.

Untuk memulai layanan yang disertakan dalam profil, tambahkan --profile tandai ke docker-compose up :

docker-compose up --profile dev

Perintah ini akan memulai app dan debug layanan dari file Compose di atas. Jika Anda menjalankan docker-compose up , menghilangkan --profile bendera, hanya app layanan akan dimulai.

Anda dapat memulai beberapa profil secara bersamaan dengan mengulangi --profile bendera. Compose juga mendukung COMPOSE_PROFILES variabel lingkungan sebagai alternatif untuk --profile . Ini menerima daftar nama profil yang dipisahkan koma.

Layanan tanpa profiles bidang akan selalu dimulai, terlepas dari profil yang diminta. Setelah layanan diberi profil, itu hanya akan dimulai jika profil itu telah diminta. Untuk layanan dengan beberapa profil, meminta salah satu dari mereka akan memungkinkan layanan untuk memulai.

Profil Implisit Dimulai

Profil akan selalu diabaikan jika Anda memulai layanan secara manual menggunakan docker-compose run . Dalam hal ini, Compose juga akan memulai layanan apa pun yang bergantung pada layanan yang diminta, jika mereka berbagi profil atau tidak memiliki profil yang ditetapkan.

Di sini, jalankan docker-compose run debug akan memulai debug-utils layanan, meskipun dev profil belum dipilih secara eksplisit:

versi:"3" layanan:aplikasi:gambar:aplikasi saya:debug-utils terbaru:gambar:utilitas-aplikasi-saya:profil terbaru:- debug dev:gambar:aplikasi-saya-debug:depend_on terbaru :profil debug-utils:- dev

Mulai implisit hanya berlaku untuk tanggungan langsung dari layanan yang ditentukan. Jika debug-utils juga memiliki depends_on , dan layanan tersebut tidak membagikan dev profil, itu tidak akan memulai dengan benar.

Agar resolusi ketergantungan berfungsi dengan baik dengan docker-compose run , semua layanan di hierarki harus berbagi profil layanan teratas, atau diaktifkan secara permanen. Jika kedua kondisi tersebut tidak terpenuhi, Anda harus menambahkan --profile tandai untuk secara eksplisit mengaktifkan profil tambahan yang diperlukan.

Ringkasan

Profil layanan adalah fitur Compose yang memudahkan untuk mengelola berbagai kombinasi layanan. Dengan menggunakan profil, Anda dapat menghindari pemisahan layanan menjadi beberapa file Tulis. Menambahkan --profile biasanya terasa lebih alami daripada menggabungkan beberapa file YAML menjadi satu.

Profil memungkinkan Anda membangun sub-tumpukan dalam aplikasi Compose utama Anda. Pengenalan mereka sebagai bagian dari spesifikasi Compose adalah pengakuan bahwa tumpukan dalam pengembangan sering kali menyertakan layanan tambahan di luar yang digunakan dalam produksi.

Secara umum, profil membuat Compose lebih fleksibel dengan memfasilitasi penyesuaian tumpukan. Meskipun dibayangkan sebagai pendekatan untuk pengelolaan lingkungan, profil juga dapat membantu komunitas membuat berbagai variasi gambar populer. Pikirkan docker-compose.yml WordPress dengan mysql dan mariadb profiles:sekarang Anda dapat dengan mudah beralih di antara layanan database yang telah dikonfigurasi sebelumnya untuk memilih mesin yang sesuai dengan preferensi Anda.

Docker Compose 1.28 memperkenalkan profil awal tahun ini. Selama Anda memiliki biner Compose versi terbaru, atau Docker Desktop untuk Windows dan Mac, Anda dapat menambahkan profiles ke file Compose Anda untuk mulai mengaktifkan layanan secara selektif.


Docker
  1. Cara Menggunakan Tulis Docker

  2. Cara Menggunakan Dockerfile untuk Membangun Gambar Docker

  3. Cara Menggunakan Profil Layanan untuk Menyederhanakan Tumpukan di Docker Compose

  1. Cara Menggunakan Perintah Systemctl untuk Mengelola Layanan Systemd

  2. Cara Menggunakan Perintah Inspeksi Docker

  3. Cara Menginstal dan Menggunakan Docker Compose di CentOS

  1. Cara Menginstal dan Menggunakan Docker Compose di Ubuntu 18.04

  2. Cara Menginstal dan Menggunakan Docker Compose di CentOS 7

  3. Cara mengkonfigurasi buruh pelabuhan untuk menggunakan proxy