จะส่งอาร์กิวเมนต์ไปยัง Dockerfile ได้อย่างไร?


121

ฉันใช้คำสั่ง RUN ภายใน a Dockerfileเพื่อติดตั้งรอบต่อนาที

RUN yum -y install samplerpm-2.3

อย่างไรก็ตามฉันต้องการส่งค่า "2.3" เป็นอาร์กิวเมนต์ คำสั่ง RUN ของฉันควรมีลักษณะดังนี้:

RUN yum -y install samplerpm-$arg

ที่ไหน $arg=2.3

คำตอบ:


154

คุณกำลังมองหา--build-argและARGคำแนะนำ สิ่งเหล่านี้เป็นของใหม่ใน Docker 1.9 ตรวจสอบhttps://docs.docker.com/engine/reference/builder/#arg นี้จะช่วยให้คุณสามารถเพิ่มARG argไปแล้วสร้างด้วยDockerfiledocker build --build-arg arg=2.3 .


1
หลังจากทำทั้งหมดนั้นฉันได้รับข้อผิดพลาด ** ไม่มีแพ็คเกจ samplerpm- $ arg ** ดูเหมือนว่าค่าอาร์กิวเมนต์ 2.3 จะไม่ถูกแทนที่
meallhour

1
คุณอาจต้องสร้างคำถามใหม่โดยDockerfileใช้คำสั่งที่ใช้ในการสร้างและข้อผิดพลาดเพื่อให้ฉันช่วยเหลือ
Andy Shinn

2
แล้วตัวแปร env แทนล่ะ
Alexander Mills
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.