下級エンジニアの綴

新しく発見したことを綴っていこうと思っています。夢はでっかく上級エンジニアになることです。

docker-composeでRAILS_ENVを切り替えて実行する方法を調べたのでメモ

今回はrspecを実行したいけど、わざわざdockerのコンテナの中に入って実行するのはイケてないと思い、調べたそのメモになります。

docker-compose exec test bash
RAILS_ENV=test_docker rake db:migrate:reset
RAILS_ENV=test_docker rspec

↑のコマンドを叩きたくないので

docker-compose exec test RAILS_ENV=test_docker rake db:migrate:reset
docker-compose exec test RAILS_ENV=test_docker rspec
## rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:262: starting container process caused "exec: \"RAILS_ENV=test_docker\": executable file not found in $PATH"

と叩くと↑のようなエラーが出て上手く動きませんでした。

なので、

docker-compose run -e RAILS_ENV=test_docker test rake db:migrate:reset
docker-compose run -e RAILS_ENV=test_docker test rspec

↑のようにrunする時に-eをつけると、envの指定が出来たので、上手く動きました。

ログインするというより、使い捨てのインスタンスを立てるって感じですね。

参考URL

blog.codeship.com