とりあえずdockerなるものを触ってみたくて、触っているレベルなため悪しからず。。。
端的に申しますと、ローカル(ホストOS内のディレクトリ)で作業した内容をdocker container上にあげているアプリに反映したい場合に何をすれば良いか分かりません。
分からないことは2つあり、
①がソースコードの変更を反映させる
②がgemのインストールを反映させるパターンです
基本的の構成は以下の様になっています
app |_docker-compose.yml |_frontend(nuxt) | |_app | |_Dockerfile |_backend(rails) |_app |_Dockerfile |_Gemfile |_Gemfile.lock
この状態でdocker-compose upを行い。
クライアントとサーバーが起動していることを確認しました。
ただこの起動確認が終えた後、どう作業を行っていけば良いかが分からない状態です。
まず①ソースコードに関しては、普通にローカルで変更を加えた後
にDocker-compose buildでイメージを再構築する。
②Gemに関しては。ローカルでgemfileに何かしらを記載した後、bundle install
その後にDocker-compose buildでイメージを再構築する。
という認識で行っていたのですが、これを行うとイメージが複数できてしまい、不具合が起きてしまいます。
ちなみにdocker-compose.ymlは見様見真似ですが以下の様に記載しています。
#docker-compose.yml FROM ruby:3.0.4 RUN apt-get update -qq && apt-get install -y build-essential libpq-dev postgresql-client nodejs ENV APP_DIR /app/backend RUN mkdir -p /app/backend WORKDIR $APP_DIR COPY Gemfile $APP_DIR/Gemfile COPY Gemfile.lock $APP_DIR/Gemfile.lock RUN bundle install COPY . $APP_DIR
ただ上の通りdocker-compose.ymlでもbundle installをしているので、ローカルとdocker上の双方でbundle installをしているのが気持ち悪く感じています。
以上を踏まえて、ソースコードとGemの反映をdockerコンテナ上で行うにはどうすれば良いでしょうか?
初心者質問すぎて、かなり分からないことが分からない状態になっておりますが、
ご回答いただけると幸いです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。