แน่นอน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เลเยอร์สำหรับแต่ละไดเรกทอรีแหล่งที่มา)?