【Docker × Ruby × MySQLの環境構築】rails newコマンドのエラーを解決したいです。
解決したいこと
【Docker / Ruby / MySQL】にて環境構築を行なっています。
以下コマンドを実行した際に表示されるエラーを解決したいです。
Docker:20.10.5
Docker-compose:1.29.0
Ruby:2.6.5
Rails:6.0.3.6
MySQL:5.6.50
発生している問題・エラー文
standard_init_linux.go:219: exec user process caused: exec format error
ERROR: 1
rails new コマンド
docker-compose run web rails new . --force --no-deps --database=mysql --skip-test --webpacker
Pulling db (mysql:5.6.50)...
5.6.50: Pulling from library/mysql
8aff230071c9: Pull complete
134fc34c9927: Pull complete
27dfb473d52e: Pull complete
702c333a167e: Pull complete
699bc078b452: Pull complete
01dd862365bd: Pull complete
7dbfc4425b5a: Pull complete
a48cbe0a83dc: Pull complete
191adddbb24b: Pull complete
e2b887ee6e99: Pull complete
0f676c0b559f: Pull complete
Digest: sha256:427635d7f0e3be6f5e085728da4e9d8e657130d941e3b0f261a1916cf5741810
Status: Downloaded newer image for mysql:5.6.50
Creating original_app_web_run ... done
standard_init_linux.go:219: exec user process caused: exec format error
ERROR: 1
ソースコード
docker-compose.yml
version: '3'
services:
db:
image: mysql:5.6.50
environment:
MYSQL_USER: root
MYSQL_ROOT_PASSWORD: password
ports:
- '3316:3306'
volumes:
- ./db/mysql/volumes:/var/lib/mysql
web:
build: .
command: bundle exec rails s -p 3000 -b '0.0.0.0'
volumes:
- .:/myapp
ports:
- "3000:3000"
depends_on:
- db
entrypoint.sh
#!/bin/bash
set -e
# Remove a potentially pre-existing server.pid for Rails.
rm -f /myapp/tmp/pids/server.pid
# Then exec the container's main process (what's set as CMD in the Dockerfile).
exec "$@"
Dockerfile
FROM ruby:2.6.5
RUN apt-get update -qq && apt-get install -y nodejs postgresql-client
RUN mkdir /myapp
WORKDIR /myapp
COPY Gemfile /myapp/Gemfile
COPY Gemfile.lock /myapp/Gemfile.lock
RUN bundle install
COPY . /myapp
COPY entrypoint.sh /usr/bin/
RUN chmod +x /usr/bin/entrypoint.sh
ENTRYPOINT ["entrypoint.sh"]
EXPOSE 3000
CMD ["rails", "server", "-b", "0.0.0.0"]
Gemfile
souce 'https://rubygems.org'
gem 'rails', '~>6'
Gemfile.lock
記述無し
自分で試したこと
各versionの確認、またentrypoint.shファイルの最初のコメントアウトを削除していたので再度記述、また再起動を行なってみたがエラーは解決できせんでした。