- 投稿日:2021-01-27T23:49:57+09:00
【環境構築】Docker rails 備忘録
Docker使ってrailsでアプリを作成した際の備忘録
手順1
ファイル作成
既にDockerをインストールしているので
使用しているディレクトリの配下に任意の名前でディレクトリを作成し
以下作成したディレクトリにファイル準備。
・Gemfile
・Gemfile.lock
・Dockerfile
・docker-compose.yml
※ターミナルでのファイル作成コマンド:touch XXXXXX(※XXXに作成するファイル名)手順2
作成したファイルの内容を編集
Gemfilesource 'https://rubygems.org' gem 'rails', 5.2.2DockerfileFROM ruby:2.5 RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs RUN mkdir /sample WORKDIR /sample COPY Gemfile /sample/Gemfile COPY Gemfile.lock /sample/Gemfile.lock RUN bundle install COPY . /sampledocker-compose.ymlversion: '3' services: db: image: mysql:5.7 environment: MYSQL_USER: root MYSQL_ROOT_PASSWORD: password ports: - "3306:3306" volumes: - ./db/mysql/volumes:/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: - .:/sample - gem_data:/usr/local/bundle ports: - 3000:3000 depends_on: - db tty: true stdin_open: true volumes: gem_data:手順3
Dockerコマンドを実行し、railsアプリケーションを作成
※Dockerを起動していない場合は次のコマンドを実行:
docker run -d -p 80:80 docker/getting-started・rails new コマンド(DBにmysqlを指定)
docker-compose run web rails new . --force --database=mysql --skip-bundle
- 投稿日:2021-01-27T15:24:52+09:00
?yawacom - ?どんな値がデータベースに入るのか
2021/01/27現在編集中
どんな値がデータベースに入るのか
アプリ内でどんな値が必要なのか,その値はどんな状態であるべきなのかをmiroに書き出しました.
テーブルは
- ユーザ情報の格納:userテーブル
- やわらかさの格納:yawarakasaテーブル
- アクセストークンの格納:access tokenテーブル
の3つを用意します.
access tokenはログイン状態の保持のために作成しています.準備
まずログインしてからデータベースを作ります.
$ mysql -uroot # rootでログインmysql> create database yawarakasa;これでyawarakasaという名前のデータベースが作られました.
確認してみましょう.mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | | yawarakasa | +--------------------+どのデータベースを使うのかを指定します.
mysql> use yawarakasaテーブル作成
テーブルをMySQLで作って行きます.
まずユーザテーブルです.create_table.sqluse yawarakasa; create table user( # auto_incrementは連番を自動で入れてくれるやつ # primary keyにはすでにユニーク制約が入っとる id int(255) not null primary key auto_increment, user_name varchar(255) not null, password varchar(255) not null, sex char(1) not null, unique(user_name) );次はやわらかさテーブルです.このファイルに追記で書いていきます.
create_table.sqlcreate table yawarakasa( # yawarakasaとしてのプライマリーキーもあるとべんり # primary keyは1行目に書かないとシンタックスエラー id int(255) not null primary key auto_increment, user_id int(255) not null references user(id), yawarakasa int(255) not null, year int(4) not null, month int(2) not null, day int(2) not null );最後にアクセストークンテーブルです.これもファイルに追記で買いていきます.
create_table.sqlcreate table access_token( user_id int(255) not null references user(id), access_token varchar(255) not null, # 古いアクセストークンでアクセスできなくするために最新トークン以外消すとかするといいかも? # デフォルトで現在時刻入れとく created_at datetime default current_timestamp not null );以上のSQLをファイル実行してテーブルを作成します.ファイル名は
create_table.sqlにしました.
下記コマンドを行うことでファイルのSQL文を実行できます.mysql> source create_table.sql もしくは mysql> \. create_table.sql作られたかどうかを確認します.
mysql> show tables; +----------------------+ | Tables_in_yawarakasa | +----------------------+ | access_token | | user | | yawarakasa | +----------------------+テーブルが3つ作成されました!?
