75684


dockerでimageを作成して、Azure container
registryに登録を行い、作成したimageをpullしてコンテナを立ち上げようとしています。

以下のコマンドを実行しているのですが、

[code]

    docker run -p 3000:3000 appsvc-tutorial.azurecr.io/test rails s -p 3000 -b '0.0.0.0'
    
[/code]

localhost:3000にアクセスしても、dbコンテナが起動していないためエラーとなってしまいます。

[こちら](https://ja.stackoverflow.com/questions/75619/docker-
run-%e3%81%a7%e8%b5%b7%e5%8b%95%e3%81%97%e3%81%a6%e3%82%82-localhost-%e3%81%ab%e3%82%a2%e3%82%af%e3%82%bb%e3%82%b9%e3%81%a7%e3%81%8d%e3%81%aa%e3%81%84-switch-
to-inspect-mode)の質問をした際に、railsとdbを同時にdocker
runで起動できるとのことだったのですが、調べてもわからなかったため詳しい方教えていただきたいです、

私がimageを作成したのはDockerのクイックスタートを参考にしたもので[こちら](https://github.com/jinwatanabe/rails_works/tree/19e15e189d0401ba374a41019e3c7546eb294566)となります。

よろしくお願いします。


CC BY-SA 4.0
2021-05-04T07:03:20.457
75665
2021-05-05T15:18:23.747
44467
question
ruby-on-rails docker
docker runでrailsとdbを同時に立ち上げたい


docker-compose が実質的に行っているのと同じように、ふたつの `docker run` を使えば可能です。つまり、片方の `docker
run` では Rails を動かし、他方の `docker run` では DB を動かせば良いです。

docker-compose がやっているのと完全に同じにするには、更にネットワークを設定し、Rails 側のコンテナから DB
側のコンテナが認識できるようにする必要があります。docker-compose.yml において `depends_on` で指定している設定です。

これらをイチから設定するのは面倒なので、特に `docker run` に拘る必要が無いのであれば最初から docker-compose
を利用すれば良いように思います。

Azure
などのクラウドで動かす場合は、複数のコンテナを別々のインスタンスとして動かし、ホスト名を使って互いにアクセスするのがよくある方法です。またデータベースについてはクラウドサービス側からマネージドサービスとして提供されていることも多いです。Rails
ではありませんが、ご覧になっているチュートリアルの[「Web App for Containers でマルチコンテナー (プレビュー)
アプリを作成する」](https://docs.microsoft.com/ja-jp/azure/app-service/tutorial-multi-
container-app)が多少参考になるかと思います。


CC BY-SA 4.0
2021-05-05T15:18:23.747
75684
2021-05-05T15:18:23.747
19110
75665
answer