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

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

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

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

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Ruby on Rails

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

Docker

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

Q&A

解決済

1回答

3300閲覧

DockerでのRailsの環境構築が失敗するので解決したい。

noah3223haon

総合スコア12

docker-compose

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

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Ruby on Rails

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

Docker

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

0グッド

0クリップ

投稿2021/10/21 08:33

前提・実現したいこと

クイックスタートを読みながら進めていたがエラーが解決できず先に進むことができない。
Quickstart: Compose and Rails

発生している問題・エラーメッセージ

ERROR: Service 'web' failed to build : COPY failed: file not found in build context or excluded by .dockerignore: stat entrypoint.sh: file does not exist

該当のソースコード

クイックスタートと同じコードです。

Dockerfile

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

Gemfile

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

enrtypoint.sh

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

docker

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

ディレクトリ構成は以下の通りです。

aaa ├── docker-compose.yml ├── Dockerfile ├── enrtypoint.sh ├── Gemfile └── Gemfile.lock

試したこと

エラーメッセージからentrypoint.sh ファイルが存在しないと言われていることがわかりました。.dockerignoreは存在していないので "file not found in build context"が原因だと考えられます。しかし何を変更したらいいかがわからない状態です。

エラー:サービス 'web'のビルドに失敗しました:コピーに失敗しました:ファイルがビルドコンテキストに見つからないか、.dockerignoreによって除外されました:stat entrypoint.sh:ファイルが存在しません

補足情報(FW/ツールのバージョンなど)

Docker Desktop 4.1.1

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

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

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

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

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

guest

回答1

0

ベストアンサー

ファイル名をtypoしてませんか?
enrtypoint.shではなくentrypoint.shでは?

投稿2021/10/23 11:02

satoshih

総合スコア799

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

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

noah3223haon

2021/10/27 08:54

返信遅くなりすみません。 ファイル名を直したら解決しました! 教えていただきありがとうございます!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問