
Diterjemahkan untuk Anda
sebuah artikel oleh Julius Minmo tentang pengaturan Penerapan Berkelanjutan untuk proyek Anda. Otomasi menghemat banyak waktu dan tenaga. Artikel ini akan berguna terutama untuk programmer pemula.
Penempatan berkelanjutan adalah hal yang hebat. Setelah kami melakukan proyek dan kemudian semuanya terjadi dalam mode otomatis, memantau proses ini hanya memikat. Pada artikel ini saya akan menunjukkan bagaimana Anda dapat mengkonfigurasi semuanya untuk proyek rumah.
Kami mengingatkan Anda: untuk semua pembaca "Habr" - diskon 10.000 rubel saat mendaftar untuk kursus Skillbox apa pun menggunakan kode promo "Habr".
Skillbox merekomendasikan: Kursus online Profesi Pengembang Frontend .
Jadi, sebagai permulaan, mari kita lihat diagram yang menjelaskan perbedaan antara Pengiriman Berkelanjutan dan Penerapan Berkelanjutan.

Dalam kasus proyek rumah, kami memilih Penerapan Berkelanjutan, karena tidak ada seorang pun kecuali Anda yang bekerja dengannya (proyek) dan tidak ada yang bergantung padanya. Nah, karena dalam kebanyakan kasus Anda ingin perubahan diterapkan segera, pilihannya jelas. Jika nanti Anda ingin mengubah prosesnya, Anda selalu dapat melakukannya.
Anda akan mempelajari yang berikut:
- Cara membuat buruh pelabuhan.
- Cara mengunggah proyek ke GitHub.
- Cara membangun citra buruh pelabuhan secara otomatis di Docker Hub.
- Cara mengunduh dan menjalankan gambar dari Menara Pengawal secara otomatis.
Apa yang dibutuhkan:
- Pemahaman dasar tentang apa itu Docker dan Dockerfile.
- Git Terpasang.
- Akun di <a href='https://hub.docker.com/"> Docker Hub
Server (fisik atau virtual) menjalankan Docker.
Inilah
repositori GitHub dan
Docker Hub yang saya gunakan.
Mengapa saya menggunakan Docker?
Itu memungkinkan untuk menggunakan lingkungan yang sama untuk proses yang berbeda, yang menghilangkan tampilan
tas heisen dan masalah "itu hanya bekerja pada mesin saya." Kontainer terisolasi, yang baik dari sudut pandang keamanan siber. Ada lebih banyak keuntungan, tetapi, menurut saya, keduanya adalah yang utama.
Konfigurasikan DockerfilePertama kita membutuhkan Dockerfile untuk proyek tersebut. File ini selalu disebut demikian dan tidak memiliki ekstensi. Itu selalu ada di direktori utama proyek.
Itu dimulai dengan pernyataan FROM, yang memberi tahu Docker dari gambar dasar mana kita mulai. Anda bisa menggambar analogi dengan melukis. Kita dapat membayangkan gambar ini sebagai kanvas yang selesai dengan latar belakang yang dilukis dan elemen utama yang hilang dari komposisi (program Anda).
Selanjutnya, salin file proyek ke wadah menggunakan perintah COPY ...
Ini memungkinkan Anda untuk mengambil file dari lokasi awal ke yang sekarang - tentu saja, di dalam wadah.
Selanjutnya, Anda perlu menginstal dependensi, untuk ini saya menggunakan Python PIP. Hal utama yang harus diingat adalah menjalankan perintah dalam wadah dengan RUN.
Dari python: 3.7
COPY ..
RUN pip install -r requirement.txtSederhana bukan? Sekarang Anda dapat menjalankan program dalam wadah.
CMD ["python", "./my_script.py"]Sekarang sudah, Anda sudah menyelesaikan Dockerfile dan dapat secara manual membuat gambar dan wadah. Sekarang lewati saja momen ini.
Sekarang mari kita membuat repositori di GitHub, tetapi ingat bahwa baris "Inisialisasi repositori ini dengan README" tidak perlu disentuh.

Sekarang salin URL.

Buka cmd / shell dari direktori root proyek. Sekarang Anda perlu menginisialisasi repositori, menambahkan file, mengkonfigurasi mode-jauh, mengkomit file dan mengirim proyek ke GitHub.
git init git add * git remote add origin https://github.com/<user>/<repository>.git git commit -a -m "Make Dockerfile ready for CD" git push -u origin master
Jika semuanya OK, repositori GitHub akan terlihat seperti ini:

Kami setengah jalan menuju kesuksesan!
Sekarang Anda harus menghubungkan GitHub ke Docker Hub. Untuk melakukan ini, buka pengaturan akun Anda.

Gulir ke bawah dan hubungkan.

Sekarang buat repositori di Docker Hub.

Beri nama repo Anda dan klik ikon GitHub atau Bitbucket. Kemudian kami memilih organisasi (biasanya nama panggilan Anda) dan nama proyek. Jika diinginkan, pengaturan dapat diubah.

Nah, sekarang langkah terakhir - di sini kita membutuhkan Menara Pengawal di mesin target. Ini adalah program yang memungkinkan Anda untuk mengotomatiskan proses. Jika pembaruan muncul, maka Menara Pengawal menghapus wadah asli dan membuat wadah dari gambar baru dengan pengaturan yang sama.
Berita baiknya adalah Anda dapat menginstal Menara Pengawal dengan Docker, untuk ini Anda harus memasukkan perintah berikut di terminal:
docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock v2tec/watchtower
Dan sekarang kami meluncurkan wadah untuk proyek kami!
docker run -d --name <my-project> <username>/<my-project>
-d memungkinkan program untuk bekerja di latar belakang, sehingga tidak akan menutup jika Anda menutup terminal.
Untuk menyimpulkan, jika Anda mengirim komit ke repositori GitHub, Docker Hub akan secara otomatis membuat gambar Docker. Kemudian Menara Pengawal akan berinteraksi dengannya.
Sedangkan untuk tes, Anda dapat menggunakan Travis CI. Anda dapat membacanya di
sini , tetapi intinya adalah Anda menambahkan file lain ke repositori yang berisi instruksi untuk server eksternal untuk melakukan tes unit atau instruksi lainnya.
Skillbox merekomendasikan: