このように複数のコマンドを実行しようとしています。
docker run image cd /path/to/somewhere && python a.py
しかし、次のように解釈されるため、「そのようなファイルまたはディレクトリはありません」というエラーが発生します...
"docker run image cd /path/to/somewhere" && "python a.py"
"" や () などの ESCAPE 文字が必要なようです。
私も試してみました
docker run image "cd /path/to/somewhere && python a.py"
docker run image (cd /path/to/somewhere && python a.py)
しかし、これらは機能しませんでした。
私は検索しましたDocker 実行リファレンスしかし、ESCAPE 文字についてのヒントは見つかりませんでした。
ベストアンサー1
dockerで複数のコマンドを実行するには、/bin/bash -c
セミコロンを使用します。;
docker run image_name /bin/bash -c "cd /path/to/somewhere; python a.py"
command2 (python) は、command1 (cd) がゼロ (エラーなし) 終了ステータスを返した場合にのみ実行される必要がある場合は、&&
代わりに以下を使用します。;
docker run image_name /bin/bash -c "cd /path/to/somewhere && python a.py"