Dockerで環境を汚さず一時的にコマンドを使う

コマンドを実行する

docker run --rm -v "$(pwd)":/opt -w /opt イメージ名 bash -c "使いたいコマンド"

$(pwd)で今のディレクトリ指定、-wでそのディレクトリで実行。

あくまでコンテナ内で実行しているので、環境変数や使えるコマンドがコンテナにインストールされてない場合は使えない。

追加でパッケージが必要な場合

docker run --rm -v "$(pwd)":/opt -w /opt イメージ名 bash -c "インストールしたいパッケージ && 使いたいコマンド"

イメージに必要なパッケージが入ってない場合、-cでコマンドを使う前にインストールするといい。

-uでユーザを変更している場合、rootではないのでパッケージマネージャが使えない場合がある。その場合は-uを諦めて、ホスト側に生成されたファイルの所有ユーザを変更する。

パッケージ以外のカスタマイズが必要な場合

docker build . -t ビルドしたイメージ名

docker run --rm -v "$(pwd)":/opt -w /opt ビルドしたイメージ名 bash -c "使いたいコマンド"

イメージのdockerfileがGitHubなどで公開されている場合は、そのイメージをダウンロードして書き換える。

 

 

参考

PHP/Composerなしで始めるLaravel/Sail入門