🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

ビルド

ソースコードを単体で実行可能なソフトウェアへ変換する過程をビルド(build)と呼びます

Docker

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

Q&A

1回答

1751閲覧

DockerでRuby on Railsの環境構築を行いたい

souda-takeru

総合スコア4

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

ビルド

ソースコードを単体で実行可能なソフトウェアへ変換する過程をビルド(build)と呼びます

Docker

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

0グッド

0クリップ

投稿2021/01/11 23:31

railsにてDockerの環境構築を行うためにフォルダを作成しようとしますがエラーが起こります

エラー文

ERROR: TLS configuration is invalid - make sure your DOCKER_TLS_VERIFY and DOCKER_CERT_PATH are set correctly. You might need to run `eval "$(docker-machine env default)"`

ファイル

Dockerfile

1FROM ruby:2.6.5 2RUN apt-get update -qq && apt-get install -y nodejs postgresql-client 3RUN mkdir /myapp 4WORKDIR /myapp 5COPY Gemfile /myapp/Gemfile 6COPY Gemfile.lock /myapp/Gemfile.lock 7RUN bundle install 8COPY . /myapp 9 10# Add a script to be executed every time the container starts. 11COPY entrypoint.sh /usr/bin/ 12RUN chmod +x /usr/bin/entrypoint.sh 13ENTRYPOINT ["entrypoint.sh"] 14EXPOSE 3000 15 16# Start the main process. 17CMD ["rails", "server", "-b", "0.0.0.0"]

Gemfile

1source 'https://rubygems.org' 2gem 'rails', '~> 6'

entrypoint

1 2#!/bin/bash 3set -e 4 5# Remove a potentially pre-existing server.pid for Rails. 6rm -f /myapp/tmp/pids/server.pid 7 8# Then exec the container's main process (what's set as CMD in the Dockerfile). 9exec "$@"

dockerconposyml

1 2version: '3' 3services: 4 db: 5 image: postgres 6 volumes: 7 - ./tmp/db:/var/lib/postgresql/data 8 web: 9 build: . 10 command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'" 11 volumes: 12 - .:/myapp 13 ports: 14 - "3000:3000" 15 depends_on: 16 - db

とファイルを作成後

$ docker-compose run web rails new . --force --no-deps --database=postgresql --skip-bundle

のコマンドにてビルドするとエラーが起こりました

行った事

環境変数が正しく設定されていないという事でdocker-machine env defaultを実行しましたが変わりませんでした。アドバイスよろしくお願いいたします

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

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

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

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

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

guest

回答1

0

docker-compose.ymlを以下の通り編集してください

version: '3' services: db: image: postgres # 以下2行を追記しました environment: POSTGRES_PASSWORD: password 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

あとは質問者様の通り、Dockerfile、docker-compose.yml、entrypoint.sh、Gemfile、Gemfile.lockを用意し、作業用ディレクトリに移動し、以下を順番に実行

$ docker-compose run web rails new . --force --database=postgresql --skip-bundle $ docker-compose build --no-cache $ docker-compose up -d

これでうまくいくと思います!

投稿2021/01/18 17:30

YYkanagawa

総合スコア16

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問