Anda dapat menetapkan nama gambar saat membuat gambar khusus, seperti ini:
docker build -t dude/man:v2 . # Will be named dude/man:v2
Apakah ada cara untuk mendefinisikan nama gambar di Dockerfile, jadi saya tidak perlu menyebutkannya dalam docker build
perintah?
docker
tags
dockerfile
gvlasov
sumber
sumber
Jawaban:
Pemberian tag pada gambar tidak didukung di dalam Dockerfile. Ini perlu dilakukan dalam perintah build Anda. Sebagai solusinya, Anda bisa melakukan build dengan docker-compose.yml yang mengidentifikasi nama gambar target dan kemudian menjalankan a
docker-compose build
. Contoh docker-compose.yml akan terlihat sepertiYang mengatakan, ada dorongan untuk tidak melakukan build dengan compose karena itu tidak bekerja dengan penyebaran mode swarm. Jadi Anda kembali menjalankan perintah seperti yang Anda berikan dalam pertanyaan Anda:
Secara pribadi, saya cenderung membangun dengan skrip shell kecil di folder saya (build.sh) yang melewati semua argumen dan menyertakan nama gambar di sana untuk menyimpan pengetikan. Dan untuk produksi, build ditangani oleh server ci / cd yang memiliki nama gambar di dalam skrip pipa.
sumber
Cara membuat gambar dengan nama khusus tanpa menggunakan file yml:
Cara menjalankan wadah dengan nama khusus:
sumber
Dockerfile
direktori dalam dengan nama yang sama seperti yang Anda inginkan untuk gambar Anda, Anda dapat menggunakandocker build -t $(basename $PWD) .
perintah build Anda. Kemudian Anda dapat menggunakan pencarian CTRL-R dari "build" untuk menemukan dan menggunakan kembali perintah dan tidak perlu mengeditnya. Anda juga bisa menjadikannya sebagai alias jika suka.Ini adalah versi lain jika Anda harus merujuk file buruh pelabuhan tertentu:
Maka Anda hanya lari
sumber
Anda dapat melakukan ini menggunakan 'AS' DARI ubuntu: 16.04 AS FooImage
sumber
AS
sintaks menentukan nama target yang digunakan dalam multi-tahap membangun, dan nama ini juga dapat digunakan di tempat gambar untukCOPY --from
sintaks dalam yang multi-tahap membangun. Namun, itu tidak menentukan nama / tag yang dihasilkan untuk build itu sendiri.