IntelliJ Gradleのパス
gradle location
/usr/local/Cellar/gradle/4.10/libexec/
プロキシ
プロキシとは
プロキシとは、ブラウザに代わってwebサーバーにリクエストするやつ。
ブラウザ -> プロキシ -> webサーバー
ブラウザ <- プロキシ <- webサーバー
なぜわざわざワンクッション挟むのか
匿名性
プロキシを経由しないで、webサーバーへアクセスした場合、アクセス先のサーバーにIPアドレスなどの個人的な情報がわかってしまう。
プロキシを挟むことで、直接サーバーへアクセスしないので、情報の漏洩を防ぐことができる。キャッシュ機能による高速化
プロキシにはキャッシュ機能が付いているため、一度アクセスしたページの情報を貯めておくことができる。
そのため、同じサイトへもう一度アクセスする際には、webサーバーまでいかずに、プロキシが情報を返してくれる。
これによって、ページの表示速度がはやくなる。
バイナリデータ・シリアライズ・デシリアライズ
MinioをDocker上で動かす
minioをインストール
docker pull minio/minio:edge docker run -p 9000:9000 minio/minio:edge server /data
Dockerfile
RUN mkdir -p /tmps3
docker-compose.yaml
minio: image: minio/minio:latest ports: - "9000:9000" volumes: - "./tmps3:/export" command: server /data environment: - "{AccessKey}" - "{SecretKey}"
Gemfile
gem 'asset_sync'
asset_sync.yaml
defaults: &defaults fog_provider: 'AWS' aws_access_key_id: '{AccessKey}' aws_secret_access_key: '{SecretKey}' # To use AWS reduced redundancy storage. # aws_reduced_redundancy: true fog_directory: "new-bucket" # バケット名を指定 development: <<: *defaults enabled: false test: <<: *defaults enabled: false staging: <<: *defaults fog_directory: "staging-hogehoge" production: <<: *defaults fog_directory: "production-hogehoge"
development.rb
# s3 route config.action_controller.asset_host = '//localhost:9000/minio/new-bucket/'
dockerを起動
docker-compose up
ローカルからminioにファイルをアップロード
# s3cmdをインストール brew install s3cmd # 設定 s3cmd --configure Access Key S3のアクセスキー指定 Secret Key S3のシークレットアクセスキーを指定 Encryption password GPG encryptionを用いる事でデータを暗号化してくれる。(とりあえず空欄でおk) Path to GPG program [/usr/bin/gpg] GPGの場所を指定。(とりあえず空欄でおk) Use HTTPS protocol [No] S3への通信をHTTPSにするか否か HTTP Proxy server name Proxyを使う場合はその指定 # s3cmdが使えることを確認 s3cmd ls # アップロード s3cmd put --recursive stylesheets/ s3://zeroone-views/assets/stylesheets/
Dockerを起動させてRailsを動かす
Dockerfileを作成
FROM ruby:2.5 RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs RUN mkdir /myapp // 変更 WORKDIR /myapp // 変更 COPY Gemfile /myapp/Gemfile // 変更 COPY Gemfile.lock /myapp/Gemfile.lock // 変更 RUN bundle install COPY . /myapp // 変更
docker-compose.yamlを作成
version: '3' services: web: build: . command: bundle exec rails s -p 3000 -b '0.0.0.0' volumes: - .:/myapp // 変更 ports: - "3000:3000"
docker-composeを起動
docker-compose run web rails new docker-compose build docker-compose up
ブラウザ上でアクセスできるか確認
docker-composeを停止
docker-compose down
DBのマイグレーションが上手くいかない
問題
マイグレーションしようとしてもエラーが出る
$ docker-compose -f ./migration-docker-compose.yml run liquibase migrate db db_migration.yaml [DEBUG] db_migration.yaml Unexpected error running Liquibase: Could not acquire change log lock. Currently locked by e2463b55fa2d (172.18.0.7) since 9/26/18 3:53 AM
解決
DELETE FROM DATABASECHANGELOGLOCK;