##困ったこと
ローカルホスト(今回はlocalhost:3000)に接続しようとdocker-compose up -dしてもうまくいかない。
昨日gem追加したからそのせいかな、と思いつつも色々試行錯誤してなんとか解決しました。
##今の状態を確認
docker-compose up -d
をしたときは良さげな感じ。でもブラウザ見ると接続できてない。
$ docker-compose up -d
Starting qiita_db_1 ... done
Starting qiita_web_1 ... done
docker-compose ps
でコンテナ一覧を表示してみるとStateがExit 7となっている。
$ docker-compose ps
Name Command State Ports
----------------------------------------------------------------------------
qiita_db_1 docker-entrypoint.sh mysqld Up 3306/tcp, 33060/tcp
qiita_web_1 bundle exec rails s -p 300 ... Exit 7
docker logs qiita_web_1
で原因を探ってみる
$ docker logs qiita_web_1
Could not find bcrypt-3.1.16 in any of the sources
Run `bundle install` to install missing gems.
ログ通りにbundle install
しようとしたが、なんかうまくいかなかった。
##解決方法
docker-compose build
してからdocker-compose up -d
する。
$ docker-compose build
db uses an image, skipping
Building web
[+] Building 36.0s (13/13) FINISHED
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 37B 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [internal] load metadata for docker.io/library/ruby:2.7.0 0.0s
=> [internal] load build context 0.7s
=> => transferring context: 10.46MB 0.7s
=> [1/8] FROM docker.io/library/ruby:2.7.0 0.0s
=> CACHED [2/8] RUN apt-get update -qq && apt-get install -y build-essential nodejs 0.0s
=> CACHED [3/8] RUN mkdir /app 0.0s
=> CACHED [4/8] WORKDIR /app 0.0s
=> [5/8] COPY Gemfile /app/Gemfile 0.1s
=> [6/8] COPY Gemfile.lock /app/Gemfile.lock 0.0s
=> [7/8] RUN bundle install 33.7s
=> [8/8] COPY . /app 0.3s
=> exporting to image 1.2s
=> => exporting layers 1.2s
=> => writing image sha256:963e2a37244ddae131525b434210cff12357decab259e971c5ec4edb27409498 0.0s
=> => naming to docker.io/library/qiita_web 0.0s
Use 'docker scan' to run Snyk tests against images to find vulnerabilities and learn how to fix them
$ docker-compose up -d
qiita_db_1 is up-to-date
Recreating qiita_web_1 ... done
docker-compose ps
で再度コンテナを表示すると、StateがUpになった。
$ docker-compose ps
Name Command State Ports
------------------------------------------------------------------------------------------------
qiita_db_1 docker-entrypoint.sh mysqld Up 3306/tcp, 33060/tcp
qiita_web_1 bundle exec rails s -p 300 ... Up 0.0.0.0:3000->3000/tcp,:::3000->3000/tcp
ブラウザで試してみると接続できるようになってるはず