お世話になっております。
Dockerのrailsコンテナが起動しません。
$ docker ps -a
を入力するとstatus
がExited (1)
となっていることが確認できます。
ContainerList
1$ docker ps 2CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3a166f5043d30 mysql "docker-entrypoint.s…" About an hour ago Up About an hour 3306/tcp, 33060/tcp mysql 4 5$ docker ps -a 6CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 7d62d73438d92 rails "rails server -b 0.0…" 41 minutes ago Exited (1) About a minute ago rails 8a166f5043d30 mysql "docker-entrypoint.s…" 51 minutes ago Up 51 minutes 3306/tcp, 33060/tcp mysql
DockerNetwork
1$ docker network ls 2NETWORK ID NAME DRIVER SCOPE 334f010a36a2b test-network bridge local
DirectoryStructure
1docker 2├── rails 3│ ├── Dockerfile 4│ ├── Gemfile 5│ ├── Gemfile.lock 6│ ├── vendor 7│ └── config 8│ └── database.yml 9└── mysql 10 ├── Dockerfile 11 └── app.cnf
#####Docker/rails/
Dokcerfile
1#rails/Dockerfile 2FROM ruby:2.6 3 4RUN curl -sL https://deb.nodesource.com/setup_10.x | bash - \ 5 && apt-get install -y nodejs 6 7ENV APP_HOME /app 8 9WORKDIR $APP_HOME 10 11COPY Gemfile $APP_HOME/Gemfile 12COPY Gemfile.lock $APP_HOME/Gemfile.lock 13 14RUN bundle install 15 16RUN rails new . --database=mysql 17 18COPY ./config $APP_HOME/config 19 20EXPOSE 3000 21 22CMD ["rails", "server", "-b", "0.0.0.0"]
Gemfile
1source 'https://rubygems.org' 2gem 'rails', '5.2.3'
#Gemfile.lock #空白
#database.yml default: &default adapter: mysql2 encoding: utf8 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> username: root password: root host: mysql development: <<: *default database: app_development test: <<: *default database: app_test production: <<: *default database: app_production username: app password: <%= ENV['APP_DATABASE_PASSWORD'] %>
#####Docker/mysql/
Dockerfile
1#mysql/Dockerfile 2FROM mysql:8.0 3COPY app.cnf /etc/mysql/conf.d/app.cnf
#app.cnf [mysqld] default_authentication_plugin= mysql_native_password
試したこと
コミットし、railsコンテナに入りました。
docker run --rm -it 604849687c9b8fa2b8c8200cab71a902aeafdd29f70eaf7381af683b01e1d758 bash root@f60c245ac592:/app#
コンテナリストにて、COMMAND
がrails server -b 0.0.0.0
となったためコンテナ内にて入力。
container
1root@4f06af994e97:/app# rails server -b 0.0.0.0 2Could not find gem 'mysql2 (>= 0.4.4, < 0.6.0)' in any of the gem sources listed in your Gemfile. 3Run `bundle install` to install missing gems.
gem mysql2
がインストールできていないとのことなので、
host
1sudo gem install mysql2 -v '0.5.2' --source 'https://rubygems.org/' 2Building native extensions. This could take a while... 3Successfully installed mysql2-0.5.2 4Parsing documentation for mysql2-0.5.2 5Done installing documentation for mysql2 after 0 seconds 61 gem installed
インストールしましたが、状況変わりませんでした。
参考サイトURL
https://qiita.com/galigalikun/items/a2436e07cf78713cf4b6 https://kitsune.blog/docker-network
回答1件
あなたの回答
tips
プレビュー