前提・実現したいこと
現在ポートフォリオの作成をしている最中なのですが、circleciにてrspecとrubocopのテストが
通ったらherokuデプロイが行われるように設定したいのですがうまくいきません。
ちなみにローカル環境ではrubocop,rspec,deploy全てうまくいきます。
具体的にできていないこととしては、postgres:9.6がうまく立ち上がらないことです。
エラー内容下記に記載させていただきます。
発生している問題・エラーメッセージ
Error: Database is uninitialized and superuser password is not specified. You must specify POSTGRES_PASSWORD to a non-empty value for the superuser. For example, "-e POSTGRES_PASSWORD=password" on "docker run". You may also use "POSTGRES_HOST_AUTH_METHOD=trust" to allow all connections without a password. This is *not* recommended. See PostgreSQL documentation about "trust": https://www.postgresql.org/docs/current/auth-trust.html Exited with code 1 CircleCI received exit code 1
#!/bin/bash -eo pipefail bundle exec rails db:create RAILS_ENV=test could not translate host name "db" to address: Name or service not known Couldn't create 'searching_outlet_test' database. Please check your configuration. rails aborted! ActiveRecord::ConnectionNotEstablished: could not translate host name "db" to address: Name or service not known
該当のソースコード
version: 2 jobs: rspec: docker: - image: circleci/ruby:2.7.4-node-browsers environment: RAILS_ENV: test DB_HOST: 127.0.0.1 DB_USERNAME: postgres DB_PASSWORD: password - image: circleci/postgres:9.6 environment: POSTGRES_DATABASE: searching_outlet_test POSTGRES_USER: postgres POSTGRES_PASSWORD: password working_directory: ~/searching_outlet steps: - checkout - restore_cache: keys: - v1-dependencies-{{ checksum "Gemfile.lock" }}-{{ checksum "yarn.lock" }} - v1-dependencies- - run: name: update bundler command: | gem update --system gem install bundler:2.1.4 - run: bundle install --jobs=4 --retry=3 --path vendor/bundle - save_cache: key: v1-dependencies-{{ checksum "Gemfile.lock" }}-{{ checksum "yarn.lock" }} paths: - ./vendor/bundle - run: bundle exec rails db:create RAILS_ENV=test - run: bundle exec rails db:schema:load RAILS_ENV=test - run: name: yarn Install command: yarn install - run: bundle exec bin/webpack - run: name: RSpec command: bundle exec rspec rubocop: docker: - image: circleci/ruby:2.7.4-node-browsers environment: RAILS_ENV: test DB_HOST: 127.0.0.1 DB_USERNAME: postgres DB_PASSWORD: password - image: circleci/postgres:9.6 environment: POSTGRES_DATABASE: searching_outlet_test POSTGRES_USER: postgres POSTGRES_ROOT_PASSWORD: password working_directory: ~/searching_outlet steps: - checkout - restore_cache: keys: - v1-dependencies-{{ checksum "Gemfile.lock" }}-{{ checksum "yarn.lock" }} - v1-dependencies- - run: name: update bundler command: | gem update --system gem install bundler:2.1.4 - run: bundle install --jobs=4 --retry=3 --path vendor/bundle - save_cache: key: v1-dependencies-{{ checksum "Gemfile.lock" }}-{{ checksum "yarn.lock" }} paths: - ./vendor/bundle - run: bundle exec rails db:create RAILS_ENV=test - run: bundle exec rails db:schema:load RAILS_ENV=test - run: name: RuboCop command: bundle exec rubocop workflows: version: 2 rspec_and_rubocop_workflow: jobs: - rspec - rubocop
version: '3' services: db: image: postgres ports: - '5432:5432' volumes: - postgresql-data:/var/lib/postgresql/data environment: - POSTGRES_PASSWORD=password web: build: context: . dockerfile: Dockerfile command: bundle exec rails s -p 3000 -b '0.0.0.0' tty: true stdin_open: true depends_on: - db ports: - "3000:3000" volumes: - .:/searching_outlet volumes: postgresql-data: driver: local
# SQLite. Versions 3.8.0 and up are supported. # gem install sqlite3 # # Ensure the SQLite 3 gem is defined in your Gemfile # gem 'sqlite3' # default: &default adapter: postgresql pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> timeout: 5000 encoding: unicode host: db username: postgres password: password development: <<: *default database: searching_outlet_development # Warning: The database defined as "test" will be erased and # re-generated from your development database when you run "rake". # Do not set this db to the same as development or production. test: <<: *default database: searching_outlet_test production: <<: *default password: <%= ENV['SEARCHING_OUTLET_DATABASE_PASSWORD'] %>
試したこと
上記、上から.circleci/config.yml,docker-compose.yml,database.yml
の記載になっています。
エラー内容をgoggleで探してみたところpasswordの環境設定に問題があるようで初期設定で設定されない
ということでしたので設定しましたが同様のエラーが発生します。
なにか原因のわかる方いましたらよろしくお願い致します。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
あなたの回答
tips
プレビュー