Bagaimana cara membuat variabel env dinamis di Dockerfile?

Saya menggunakan Docker composé ver 1.5 atau 6 dan image nginx. Saya ingin membuat parameter nginx.config. Untuk melakukan itu saya ingin membuat var dari $(basename some path). Namun masalahnya adalah Docker tidak menerima var dinamis seperti itu di bagian env dari Dockerfile. Masalah lainnya adalah saya juga tidak dapat memetakan variabel-variabel tersebut saat build dijalankan karena Docker composer tidak menerima vars yang dinamis dan bernaskah. Bagaimana cara mengatasi permasalahan tersebut?

From nginx
ENV myvar=$(basename /)

Ini tidak mungkin untuk membangun citra.

Cara lainnya adalah

ARG myvar
ENV myvar2=myvar

Tetapi versi penulisan Docker saya hanya memungkinkan untuk mengatur

Environment: myvar=$(basename mypathinthevolume/)

Tampaknya itu juga tidak berhasil


person kol23    schedule 14.07.2020    source sumber
comment
tolong, beri kami informasi lebih lanjut, tempelkan dockerfile Anda dan setidaknya docker-compose   -  person Sergio Tanaka    schedule 14.07.2020
comment
Pernahkah Anda melihat teknik seperti yang dijelaskan di Ganti variabel lingkungan di NGINX konfigurasi dari docker-compose? Jika Anda membuat konfigurasi templat dan kemudian menulis ulang di titik masuk gambar Anda, Anda dapat mengganti konten sesuka Anda.   -  person David Maze    schedule 14.07.2020
comment
Dalam contoh khusus $(basename /some/path), biasanya tata letak sistem file dari kontainer Docker sudah diperbaiki dan tidak masalah untuk jalur hard-code di sana. Jika Anda memasang konten host yang mengikat, minta jalur sisi kontainer menjadi misalnya /data.   -  person David Maze    schedule 14.07.2020
comment
@David Maze itulah masalahnya. Saya tidak dapat menggunakan jalur statis karena konten volume berbeda dan saya memerlukan nama dalam konfigurasi.   -  person kol23    schedule 14.07.2020
comment
Hal lain - saya tidak dapat menggunakan gambar dasar nginx. Saya menggunakan FROM nginx sehingga pada dasarnya saya tidak dapat memetakan variabel di baris/wadah yang sama saat nginx dijalankan.   -  person kol23    schedule 14.07.2020