Railsプロジェクト 初回セットアップ
前提
10年ぶり近くでRailsを触ることになったので、初心者のつもりでゼロからセットアップ。
当時はDockerもなかったのでDockerに慣れていくことも兼ねる。
環境
至って普通。
必要なファイルの用意
- Dockerfileを作る。注意することろはyarn。普通にapt-getで入れるだけだとyarnのバージョンに問題があり、あとでwebpackが入らない。
FROM ruby:2.6.6 RUN apt-get update -qq \ && apt-get install -y curl apt-transport-https wget \ && 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 \ && apt-get update && apt-get install -y yarn \ && apt-get install -y nodejs default-mysql-client WORKDIR /app COPY Gemfile /app/Gemfile COPY Gemfile.lock /app/Gemfile.lock RUN bundle install COPY . /app # Add a script to be executed every time the container starts. 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"]
- Gemfileを作る。このファイルはあとでrails newを実行した際に上書きされる。
source 'https://rubygems.org' gem 'rails', '~>6.0.2'
空のGemfile.lockを作る。
entrypoint.shを作る
#!/bin/bash set -e # Remove a potentially pre-existing server.pid for Rails. rm -f /app/tmp/pids/server.pid # Then exec the container's main process (what's set as CMD in the Dockerfile). exec "$@"
- docker-compose.ymlを作る
version: '3.7' services: db: image: mysql:8.0.20 environment: MYSQL_ROOT_PASSWORD: password ports: - '3306:3306' command: --default-authentication-plugin=mysql_native_password volumes: - ./tmp/db:/var/lib/mysql web: build: . command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'" volumes: - .:/app ports: - "3000:3000" depends_on: - db
ビルド実行
% docker-compose run web rails new . --force --no-deps --database=mysql
今思えばこの時にtubolinksとか無効にしておけばよかった。Gemfileはこのタイミングで更新される。
Gemfileが書き換わったので再ビルド
% docker-compose build
Webpackerのインストール
docker-compose upで立ち上げようとするが、config/webpacker.ymlがないと言われて落ちる。webpackerをインストールしないといけないと知る。
% docker-compose run web rails webpacker:install
ここでyarnが入っていなかったり、前述の通りyarnのバージョンがあってないせいでエラー(ArgumentError: Malformed version number string 0.32+git)が発生。 Dockerfileを修正して(上のファイルは修正済み)再ビルド。再ビルド後、インストールが完了して、無事webpacker.ymlができた。
DBの作成
- config/database.ymlの修正。環境変数から読んだりしたほうがいいのだろうけど、あとでやる。
default: &default ... username: root password: password ...
- DBの作成
% docker-compose run web rails db:create
起動
% docker-compose up
localhost:3000で無事アクセスできることを確認。
turbolinksの削除
SEOとか相当無難に行きたい案件なので、turbolinksは無効にする。
Gemfileから以下の箇所を削除
# Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks gem 'turbolinks', '~> 5'
- application.jsから以下の箇所を削除
require("turbolinks").start()
- application.html.erbを以下に変更
<%= stylesheet_link_tag 'application', media: 'all' %> <%= javascript_pack_tag 'application' %>
- docker-compose run web bundle updateを実行後、docker-compose buildを実行し直す。
今日聞いたマーケ用語
所属しているのは開発部で業務は主にプログラミングだけど、マーケティングに関わる業務に関わることが多い。
とはいえ、自分はほとんどマーケに関わったことがないので聞いたことがない用語が資料にたくさんあるので、メモ。
- ブロードリーチ
ターゲットリーチの対義語。その名の通り広く浅いリーチ。
- YoY
前年比。もうこれは前年比でいいのでは…。
- PLC
多分、Product Life Cycle。ググった感じ、世間一般ではPLCって略さない模様。
- OMO
Online Merges with Offline。ネットとリアルの垣根にとらわれず、UXの向上を目指す概念。
- 購買ファネル
AIDMAの発展系。購買決定プロセスが進むに従って、対象は狭まっていくのが漏斗(ファネル)の形に似ていることから。
- MQL
Marketing Qualified Lead。マーケ上、優良な見込み客。今まではSQL(Sales Qualified Lead)を対象に活動していればよかったが、それだと先細りになるのでMQLも対象にしてマーケ活動することが大事らしい。それをリードなーチャリングという。
- WP
ホワイトペーパー。Word Pressじゃない。
ブログはじめたきっかけ
2020年4月、世界は空前の災害に襲われているわけなんだけど、そんな中転職してしまった。 こんな災害が起こると分かっていたら転職なぞ、しなかっただろうけれども。
まだ一度も出社せず、ずっとテレワークではあるが、日々学びがあるのでそれをだらだらでもいいくらいのつもりで、書いてみようと思う。
きっかけはこの本。
学びを結果に変えるアウトプット大全 (Sanctuary books)
- 作者:樺沢紫苑
- 発売日: 2018/08/03
- メディア: 単行本(ソフトカバー)
簡易な内容なので、一部荒れているレビューも散見されているけど、今の自分にはすんなり腑に落ちる感じでよかった。
何年かに一度アウトプットせねばと思ってブログの記事を1、2件書いてみるみたいなことはあるんだけど、続かない。 それはなんでかと思ってみると、実名でやっていたこともあり理想が高すぎてちゃんとしたことを発信しないとという思いが強いこと、前職では周りに発信を積極的にしっかりやっている人が多かったので、比較してしまいどうしても二の足を踏んでしまっていること、この2点に気づいた。
この本では学んだことを自分の身になるためには簡単な内容でも発信してみることが大事ということが書かれていたので、転職して新しいことに触れる機会も増えたので、まずは自分のためにできるだけ楽にその代わり続くようにアウトプットすることを始めてみようと思う。
今回はあまりカッコつける必要がないように、匿名でやることにした。
さて、続けられるかどうか。