前提・実現したいこと
クイックスタートを読みながら進めていたがエラーが解決できず先に進むことができない。
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
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/27 08:54