前提・実現したいこと
EC2上にDockerを用意し、Railsアプリケーションを起動させたいのですが、Githubからアプリケーションをclone後、「docker-compose build」し、「docker-compose run web rails db:create」をしようとしたところエラーが発生しました。
発生している問題・エラーメッセージ
Creating myapp11_db_1 ... done Creating myapp11_app_1 ... done Error response from daemon: OCI runtime create failed: container_linux.go:349: starting container process caused "exec: \"rails\": executable file not found in $PATH": unknown
該当のソースコード
Dockerfile↓
FROM ruby:2.5 # RUN apt-get update -qq && \ # apt-get install -y nodejs \ # postgresql-client\ # vim RUN apt-get update -qq && apt-get install -y nodejs RUN curl -sL https://deb.nodesource.com/setup_10.x | bash - \ && apt-get install -y nodejs\ postgresql-client\ vim RUN mkdir /myapp WORKDIR /myapp COPY Gemfile /myapp/Gemfile COPY Gemfile.lock /myapp/Gemfile.lock RUN bundle install RUN bundle update COPY . /myapp COPY entrypoint.sh /usr/bin/ RUN chmod +x /usr/bin/entrypoint.sh ENTRYPOINT ["entrypoint.sh"] RUN mkdir -p tmp/sockets
Docker-compose↓
version: '3' services: app: build: . env_file: - ./environments/db.env command: bash -c "rm -f tmp/pids/server.pid && bundle exec puma -C config/puma.rb" volumes: - .:/myapp - public-data:/myapp/public - tmp-data:/myapp/tmp - log-data:/myapp/log depends_on: - db db: image: postgres env_file: - ./environments/db.env volumes: - ./tmp/db:/var/lib/postgresql/data environment: POSTGRES_PASSWORD: password web: build: nginx volumes: - public-data:/myapp/public - tmp-data:/myapp/tmp - gem_data:/usr/local/bundle ports: - "80:80" depends_on: - app tty: true stdin_open: true volumes: public-data: tmp-data: log-data: db-data: gem_data:
試したこと
調べた結果、「buildし直す」やrailsコマンドの前に「bundle exec」をつける等試しましたが解決できませんでした、、、
正直手も足も出ず、行き詰まってしまいました、、、。
突破口をご教授いただけると幸いですm(__)m
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/18 10:23 編集
2020/08/18 15:03
2020/08/21 09:59