0

私はDockerfileで遊んでいますが、これがあります:

ARG PUID=1000
ARG PGID=1000
RUN groupadd -g $PGID docker-user && \
    useradd -u $PUID -g docker-user -m docker-user && \
    mkdir /home/docker-user/.composer

COPY container-files/home/docker-user/.composer/composer.json /home/docker-user/.composer
RUN chown -R docker-user:docker-user /home/docker-user/.composer
USER docker-user
RUN composer global install

しかし、イメージをビルドしようとすると、次のエラーで終了します。

Step 6 : COPY container-files/home/docker-user/.composer/composer.json /home/docker-user/.composer
lstat container-files/home/docker-user/.composer/composer.json: no such file or directory

この出力によると、ファイルはホスト上に存在します。

$ ls -la workspace/container-files/home/docker-user/.composer/
total 12
drwxrwxr-x 2 rperez rperez 4096 Oct  5 11:34 .
drwxrwxr-x 3 rperez rperez 4096 Oct  5 11:14 ..
-rw-rw-r-- 1 rperez rperez  208 Oct  5 11:20 composer.json

私はこの構文も試しました:

COPY container-files /

しかし、どちらもうまくいきませんでした。だから私は尋ねるべきです:何が問題なのですか?なぜこれが何度も失敗し続けるのですか?ここで何が欠けていますか?

4

1 に答える 1

1

ドキュメントでは、これに次のように対処しています。

デフォルトでは、docker build コマンドはDockerfileビルド コンテキストのルートで を探します。, -f,--fileオプションを使用すると、代わりに使用する代替ファイルへのパスを指定できます。これは、同じファイル セットが複数のビルドに使用される場合に役立ちます。パスは、ビルド コンテキスト内のファイルへのパスである必要があります。相対パスが指定されている場合は、コンテキストのルートに対する相対パスとして解釈されます。

この場合、私は

COPY workspace/container-files/home/docker-user/.composer/composer.json /home/docker-user/.composer
于 2016-10-05T16:06:35.373 に答える