Wadah OCI adalah cara mudah untuk mengemas rantai alat yang sesuai untuk suatu proyek sehingga lingkungan pengembangan konsisten dan anggota proyek baru dapat memulai dengan cepat hanya dengan memeriksa proyek dan menarik wadah yang relevan.

  • Tentu saja saya tidak berbicara tentang proyek yang hanya membutuhkan compiler C++ atau Node.JS. Saya berbicara tentang proyek yang memerlukan paket kompiler khusus yang tidak berfungsi dengan yang lebih baru dari Fedora 22, proyek dengan alat khusus yang perlu diinstal secara manual ke tempat-tempat asing, mengerjakan beberapa proyek yang memiliki alat yang tidak dapat dipasang bersama dan semacamnya . Untuk hal-hal semacam ini lebih mudah untuk memiliki wadah daripada mengikuti dua puluh langkah instalasi dan kemudian berdoa agar bagian-bagian yang tersisa dari proyek sebelumnya tidak merusak barang-barang untuk Anda.

Namun, memulai wadah dengan kompiler untuk membangun proyek memerlukan beberapa opsi di buruh pelabuhan (atau podman) baris perintah. Selain nama gambar, biasanya:

  • mount direktori kerja proyek
  • id pengguna (karena wadah harus mengakses file yang dipasang saat pengguna menjalankannya)
  • jika alat memerlukan akses ke beberapa sumber daya jaringan, alat tersebut mungkin juga memerlukan
    • beberapa kredensial, melalui lingkungan atau lainnya
    • soket agen ssh (mount dan variabel lingkungan)
  • jika proses pembangunan melibatkan pembuatan wadah buruh pelabuhan
    • soket buruh pelabuhan (mount); buildah dapat bekerja tanpa penyiapan khusus
  • dan if adalah alat grafis (mis. IDE)
    • Mount soket X dan variabel lingkungan
    • --ipc host untuk membuat memori bersama berfungsi

Dan kemudian itu bisa menjadi lebih rumit oleh faktor-faktor lain. Misalnya. jika pengembang berada di departemen yang berbeda dan tidak memiliki akses ke repositori buruh pelabuhan yang sama, gambar mereka mungkin disebut berbeda, karena buruh pelabuhan tidak mendukung nama simbolis dari repositori (podman mendukungnya).

Apakah ada cara standar (ish) untuk menangani opsi ini atau apakah semua orang hanya menggunakan skrip pembungkus ad-hoc?

1
Jan Hudec 5 Agustus 2019, 16:46

1 menjawab

Jawaban Terbaik

Saya menggunakan Visual Studio Code Remote - ekstensi Wadah untuk menghubungkan kode sumber ke wadah Docker yang menampung semua alat yang diperlukan untuk membuat kode (misalnya modul npm, ruby ​​gems, eslint, Node.JS, java). Wadah berisi semua "alat" yang digunakan untuk mengembangkan/membangun/menguji kode sumber.

Selain itu, Anda juga dapat menempatkan ekstensi VSCode ke dalam image Docker untuk membantu menjaga alat VSCode IDE tetap portabel. https://code.visualstudio.com/docs/remote/containers#_managing- ekstensi

Anda dapat memberikan Dockerfile dalam kode sumber untuk pendatang baru untuk membangun Gambar Docker sendiri atau lampirkan VSCode ke Docker yang ada wadah.

Jika Anda perlu menjalankan server di dalam wadah Docker untuk tujuan pengujian, Anda dapat ekspos port pada container melalui VSCode, dan mulai tekan server di dalam container dengan browser atau cURL dari mesin host.

Waspadai batasan yang diketahui pada Visual Studio Code Remote - ekstensi Containers . Salah satu yang paling memengaruhi saya adalah dukungan beta untuk Alphine Linux . Saya sering memperhatikan beberapa gambar Docker Hub yang populer didasarkan pada Alphine.

2
Kin 9 Agustus 2019, 16:00