Linux PC関係 Ruby/RubyOnRails

DockerでRails6を使う

投稿日:

このイメージを使い回せば次回からの環境構築が楽になると思っていろいろやってみたけど、ちょこちょこハマってしまいました。

ひとまず、Dockerfileとかいろいろ
APPNAMEは自分のアプリ名に打ち替え

FROM ruby:2.7.1

RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
    && echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list

RUN apt-get update -qq && apt-get install -y nodejs postgresql-client yarn
RUN mkdir /APPNAME
WORKDIR /APPNAME
COPY Gemfile /APPNAME/Gemfile
COPY Gemfile.lock /APPNAME/Gemfile.lock
RUN bundle install
COPY . /APPNAME

COPY entrypoint.sh /usr/bin/
RUN chmod +x /usr/bin/entrypoint.sh
ENTRYPOINT ["entrypoint.sh"]
EXPOSE 3000

# Start the main process.
CMD ["rails", "server", "-b", "0.0.0.0"]
version: '3'
services:
  db:
    image: postgres
    volumes:
      - ./tmp/db:/var/lib/postgresql/data
    environment:
      - POSTGRES_PASSWORD=hogehoge
  web:
    build: .
    command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'"
    volumes:
      - .:/APPNAME
    ports:
      - "3000:3000"
    depends_on:
      - db
#!/bin/bash
set -e

# Remove a potentially pre-existing server.pid for Rails.
rm -f /uchinoko/tmp/pids/server.pid

# Then exec the container's main process (what's set as CMD in the Dockerfile).
exec "$@"
source 'https://rubygems.org'
gem 'rails', '6.0.3.3'

Gemfile.lockはファイルだけ作成して中身は空っぽで。

そんで、

docker-compose build
docker-compose run web rails new . --force --no-deps --database=postgresql

rails newでできるファイルやディレクトリがすべてrootで出来上がってしまう。 ここがハマってしまった。
ちゃんとエラー文見てればすぐ分かったのに。

なので、

sudo chown  -R hoge:hoge /APPNAME

これでOK


教訓教訓。

-Linux, PC関係, Ruby/RubyOnRails
-, ,

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

postgresの初期設定

linux上でpostgresのパスワード設定psqlで”alter role postgres with password ‘hogehoge’;”/ …

Ubuntuいいかも

むかーし、古いノートをLinux(PuppyとかDamn Smallとかとか)で使ってみたことあったんだけど、ノートが古すぎてドライバが当たらなかったことがありました。 その後、CentOSとUbun …

no image

RubyのSSLエラー解決

Railsでkaminariというページングライブラリを使用して、bootstrap4を使いたかったので $ bin/rails g kaminari:views bootstrap4 /home/H …

webpack導入でくじけた

イケてるフロントエンドを目指すべく、「Vue.js」をRailsアプリへ導入しようと思ったときに、webpackerではなくwebpackを使って構築しようと思ったときにはまったので。 webpack …

ubuntu(xubuntu)で音が出ない メモ

Let’sNote(CF-S10)にxubuntuを入れて開発してるんですけど、たまたま音楽を流そうかと思ったら、音が出ない! 内蔵スピーカーは認識してるし、ミュートにもなってない。 su …