docker compose cp でディレクトリ配下のファイルを全てコピーしたい

結論

コピー元に . を指定することで指定したディレクトリ配下のファイル・ディレクトリ全てがコピーされる。

docker compose cp database/migrations/. app:/src/database/migrations/

ファイルだけ, 拡張子を指定したい... などのユースケースは for で愚直にloopするしかない。

for file in database/migrations/*.rb; do docker compose cp $file app:/src/database/migrations/; done

何に困っていたか

cpコマンドと同じノリで実行しようとしたがダメだったので調べたメモ。

docker compose cp database/migrations/* app:/src/database/migrations/

"docker compose cp" requires exactly 2 arguments.
See 'docker compose cp --help'.

Usage:  docker compose cp [OPTIONS] SERVICE:SRC_PATH DEST_PATH|-
    docker compose cp [OPTIONS] SRC_PATH|- SERVICE:DEST_PATH

Copy files/folders between a service container and the local filesystem

関連リンク

docs.docker.com

github.com

www.warp.dev