ฉันใช้ Docker composé เวอร์ชัน 1.5 หรือ 6 และอิมเมจ nginx ฉันต้องการกำหนดพารามิเตอร์ nginx.config ในการทำเช่นนั้น ฉันต้องการสร้าง var จาก $(ชื่อฐานบางเส้นทาง) แต่ปัญหาคือ Docker ไม่ยอมรับ vars แบบไดนามิกเช่นนั้นในส่วน env ของ Dockerfile ปัญหาอีกประการหนึ่งคือฉันยังไม่สามารถแมปตัวแปรเหล่านั้นในการรันบิลด์ได้เนื่องจากนักเทียบท่าเขียนไม่ยอมรับ vars ที่เป็นสคริปต์แบบไดนามิก จะเอาชนะปัญหานั้นได้อย่างไร?
From nginx
ENV myvar=$(basename /)
สิ่งนี้เป็นไปไม่ได้ที่จะสร้างภาพ
อีกวิธีหนึ่งคือ
ARG myvar
ENV myvar2=myvar
แต่เวอร์ชันการเขียน Docker ของฉันอนุญาตให้ตั้งค่าเท่านั้น
Environment: myvar=$(basename mypathinthevolume/)
นั่นก็ดูเหมือนจะไม่ได้ผลเช่นกัน
$(basename /some/path)
โดยทั่วไปแล้วโครงร่างระบบไฟล์ของคอนเทนเนอร์ Docker จะได้รับการแก้ไข และสามารถใช้เส้นทางแบบฮาร์ดโค้ดที่นั่นได้ หากคุณกำลังผูกเนื้อหาโฮสต์ กำหนดให้เส้นทางฝั่งคอนเทนเนอร์เป็น เช่น/data
- person David Maze   schedule 14.07.2020