entrypoint.sh
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 "$@"
Dcokerfile
FROM ruby:2.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"] ``` docker-compose.yml ``` version: '3' services: db: image: postgres 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 ``` dockerでrailsの環境をインストールしようと試みているのですが、ターミナルで"docker-compose run web rails new . --force --no-deps --database=postgresql"を実行したら以下のようなエラーが出ました。 "standard_init_linux.go:190: exec user process caused "exec format error" 写真は以下です ![イメージ説明](3100a742ed21c59ab6549002e68bd07c.png) 何度試しても同じようなエラーが出ます。 参考までに、以下のサイトを見ながら進めています [リンク内容](https://docs.docker.com/compose/rails/) どなたかわかる方ご教授願いします。
シェバンがないシェルスクリプトに対してそのエラーメッセージが出る環境あるみたいですね。entrypoint.shの先頭に #!/bin/bash と書かれてますでしょうか。
コメントありがとうごございます!
書かれていなかったので今書き、"docker-compose run web rails new . --force --no-deps --database=postgresql"をターミナルで再度実行しましたがまだ同じようなエラーが出ています・・
参考リンク先 https://docs.docker.com/compose/rails/ に従い、空のディレクトリからスタートした感じですか?僕もちょっとやってみたんですが何事もなく成功し、スクショにある Starting railstutorial_db_1 ってログが僕の方では見当たらなかったので、そこをちょっと怪しんでます。
コメントありがとうございますm(_ _)m
仰るとうりです。
新たに空のディレクトリを作り https://docs.docker.com/compose/rails/
の手順に沿って進めましたが、やはり同じエラーが出てしまいます。
今確認したところ"Starting railstutorial_db_1" のrailstutorialのところは作業しているディレクトリ名かと思われます。
自分はrailstutorialtoとゆうディレクトリの中で作業をしていました。
回答1件
あなたの回答
tips
プレビュー