実際に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 . .
.dockerignoreファイル内:
node_modules
headache.lock
tmp
dist
または、もっと楽しくするには(または、より多くの人々を混乱させて、同様に苦しませたい場合:P)、次のようにすることができます。
*
!src
!assets
!go
!justforfun
!scripts
!package.json
このようにして、すべてを無視しますが、「無視リスト」からのみコピーまたは追加したいものを除外します。
それは遅い答えですが、さらに多くのケースをカバーして同じことを行うためのより多くの方法を追加します。
ADD
、各ソースディレクトリのレイヤーを作成せずに)?