質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

1回答

4733閲覧

docker-compose up でデーターベースが起動できない

akioyonamine

総合スコア24

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

1クリップ

投稿2019/02/14 11:53

編集2019/02/16 08:02

Dcokerfile

FROM ruby:2.5 RUN apt-get update -qq && apt-get install -y nodejs postgresql-client RUN mkdir /myapp WORKDIR /myapp COPY Gemfile /myapp/Gemfile COPY Gemfile.lock /myapp/Gemfile.lock RUN bundle install COPY . /myapp

docker-compose.yml

version: '3' services: db: image: postgres volumes: - ./tmp/db:/var/lib/postgresql/data web: build: . command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'" volumes: - .:/myapp ports: - "3000:3000" depends_on: - db

config/detabase.yml

default: &default adapter: postgresql encoding: unicode host: db username: postgres password: pool: 5 development: <<: *default database: myapp_development test: <<: *default database: myapp_test

エラー内容

イメージ説明

ターミナルでdocker container lsを実行した結果

***:Rails-master ***$ docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1fae4ae6d4d8 rails-master_web "bash -c 'rm -f tmp/…" 4 hours ago Up 39 minutes 0.0.0.0:3000->3000/tcp rails-master_web_1

#困っていること
docker上でrailsの環境を構築しているのですが、上記写真のようにdocker-compose upを実行しすると" FATAL: database files are incompatible with server"または"The data directory was initialized by PostgreSQL version 10, which is not compatible with this version 11.1 (Debian 11.1-3.pgdg90+1)"と表示されます。
また別タブでターミナルを開きdocker-compose run web rails db:createを実行すると以下のように表示されました。

***:Rails-master ***$ docker-compose run web rails db:create Starting rails-master_db_1 ... done could not translate host name "db" to address: Name or service not known Couldn't create 'myapp_development' database. Please check your configuration. rails aborted!

#調べたこと
上記エラー文の"The data directory was initialized by PostgreSQL version 10, which is not compatible with this version 11.1 (Debian 11.1-3.pgdg90+1)"をコピペして調べたらリンク内容で得た情報を元に"rm -rf /usr/bin/pg && initdb /usr/bin/pg -E utf8"を実行しましたが
"-bash: initdb: command not found"と表示されました。

言葉足らずだったら申し訳ありません。
このエラーを解決する為に、何かご教授頂ければ幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/02/14 16:02

database.ymlの記述がdockercompose.ymlと同じになっていますが、これでは動作しないと思います。
guest

回答1

0

ベストアンサー

エラーメッセージの

database file are incompatible with server
the data directory was initialized by postgresql version 10, which is not compatibe with this version 11.1

が全てだと思いますが・・・

訳: データベースファイルはサーバーと互換性がありません。データディレクトリはpostgresqlバージョン10で初期化されました。このバージョン11.1とは互換性がありません。

./tmp/db がpostgres10のものなのに11で利用しているので拒否されているように読めます。
このエラーを私の手元のDocker for Macで再現してみました。

  1. d run --rm -v $(pwd)/pgdata:/var/lib/postgresql/data postgres:10-alpine 実行
  2. ctrl+cでコンテナを落とす
  3. d run --rm -v $(pwd)/pgdata:/var/lib/postgresql/data postgres:11-alpine 実行 エラー発生
2019-02-14 16:39:08.451 UTC [1] FATAL: database files are incompatible with server 2019-02-14 16:39:08.451 UTC [1] DETAIL: The data directory was initialized by PostgreSQL version 10, which is not compatible with this version 11.1.

はい、同じですね。
試行錯誤の経過でpostgres10で試したり11で試したりしたのではないですか?

解決するには、

image: postgres:10

このようにpostgres10を使用するようにするか、一旦 ./tmp/db を削除してしまうことでしょう(削除して良いならですが)。

rm -rf ./tmp/db

投稿2019/02/14 16:42

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/02/14 16:44

あ、d run は docker run に読み替えてください。私の端末ではalias d=docker と設定しているのです。
akioyonamine

2019/02/16 07:49

回答ありがとうございます。 database.ymlをdocker-compose.ymlに間違えてしまい申し訳ありません。 余計な時間を使わせてしまいました。 ご指摘の通り試行錯誤の経過でpostgres10で試したり11で試したりしたかもしれません。 image: postgres:10に変更したら解決いたしました。 たいへん勉強になりました! また機会があれば是非宜しくお願いします!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問