私は自分のlocalhostからdocker image buildにいくつかのファイルとフォルダをコピーしようとしています。
ファイルは次のとおりです。
folder1
file1
file2
folder2
file1
file2
私はこのようなコピーを作成しようとしています:
COPY files/* /files/
しかし、すべてのファイルは/ files /に置かれています。Dockerでは、サブディレクトリ構造を維持したり、ファイルをそのディレクトリにコピーしたりすることはできますか。
このDockerfileを使って、COPYからstarを削除します。
FROM ubuntu
COPY files/ /files/
RUN ls -la /files/*
構造はそこにあります:
$ docker build .
Sending build context to Docker daemon 5.632 kB
Sending build context to Docker daemon
Step 0 : FROM ubuntu
---> d0955f21bf24
Step 1 : COPY files/ /files/
---> 5cc4ae8708a6
Removing intermediate container c6f7f7ec8ccf
Step 2 : RUN ls -la /files/*
---> Running in 08ab9a1e042f
/files/folder1:
total 8
drwxr-xr-x 2 root root 4096 May 13 16:04 .
drwxr-xr-x 4 root root 4096 May 13 16:05 ..
-rw-r--r-- 1 root root 0 May 13 16:04 file1
-rw-r--r-- 1 root root 0 May 13 16:04 file2
/files/folder2:
total 8
drwxr-xr-x 2 root root 4096 May 13 16:04 .
drwxr-xr-x 4 root root 4096 May 13 16:05 ..
-rw-r--r-- 1 root root 0 May 13 16:04 file1
-rw-r--r-- 1 root root 0 May 13 16:04 file2
---> 03ff0a5d0e4b
Removing intermediate container 08ab9a1e042f
Successfully built 03ff0a5d0e4b
あるいは、「。」を使用することもできます。 *ではなく、作業ディレクトリ内のすべてのファイルが使用されるため、フォルダとサブフォルダを含めます。
FROM ubuntu
COPY . /
RUN ls -la /
マージローカルディレクトリをイメージ内のディレクトリにするには、これを実行します。イメージ内に既に存在するファイルは削除されません。ローカルに存在するファイルのみを追加し、同じ名前のファイルが既に存在する場合、イメージ内のファイルを上書きします。
COPY ./files/. /files/