แน่นอนADD go /usr/local/
จะเพิ่มเนื้อหาของgo
โฟลเดอร์และไม่ใช่ตัวโฟลเดอร์คุณสามารถใช้โซลูชัน Thomasleveil หรือหากไม่ได้ทำงานด้วยเหตุผลบางอย่างที่คุณสามารถเปลี่ยนWORKDIR
เป็น/usr/local/
แล้วเพิ่มไดเรกทอรีของคุณไปที่:
WORKDIR /usr/local/
COPY go go/
หรือ
WORKDIR /usr/local/go
COPY go ./
แต่ถ้าคุณต้องการเพิ่มหลาย ๆโฟลเดอร์มันจะน่ารำคาญที่จะเพิ่มมันอย่างนั้นทางออกเดียวสำหรับตอนนี้ที่ฉันเห็นจากปัญหาปัจจุบันของฉันคือการใช้COPY . .
และไม่รวมไดเรกทอรีและไฟล์ที่ไม่ต้องการทั้งหมด.dockerignore
มาสมมติว่าฉันมีโฟลเดอร์และไฟล์ :
- src
- tmp
- dist
- assets
- go
- justforfun
- node_modules
- scripts
- .dockerignore
- Dockerfile
- headache.lock
- package.json
และฉันต้องการที่จะเพิ่มsrc assets package.json justforfun go
:
ใน Dockerfile:
FROM galaxy:latest
WORKDIR /usr/local/
COPY . .
ในไฟล์ .ockerignore:
node_modules
headache.lock
tmp
dist
หรือเพื่อความสนุกสนานมากขึ้น (หรือคุณต้องการสร้างความสับสนให้ผู้คนมากขึ้นทำให้พวกเขาประสบเช่นกัน: P) สามารถ:
*
!src
!assets
!go
!justforfun
!scripts
!package.json
ด้วยวิธีนี้คุณจะไม่สนใจทุกสิ่ง แต่ไม่รวมสิ่งที่คุณต้องการคัดลอกหรือเพิ่มจาก "ละเว้นรายการ" เท่านั้น
มันเป็นคำตอบที่ล่าช้า แต่การเพิ่มวิธีการที่จะทำสิ่งที่เหมือนกันนั้นครอบคลุมมากขึ้น
ADD
เลเยอร์สำหรับแต่ละไดเรกทอรีแหล่งที่มา)?