docker imageの作成及び、docker hubへのpush

image作成、 docker-hubへのpush

docker build -t {yoheimiyamoto/imageの名前} -f {Dockerfile名} .
docker login
docker push yoheimiyamoto/{imageの名前}

イメージの利用

services:
  app:
    # build: .
    image: yoheimiyamoto/rails-app // docker-hubにpushしたimageを指定

docker rails batch

Dockerfile

FROM ruby:2.3.3
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs
RUN mkdir /myapp
WORKDIR /myapp
ADD Gemfile /myapp/Gemfile
ADD Gemfile.lock /myapp/Gemfile.lock
RUN bundle install
ADD . /myapp

docker-compose.yml

version: '2'
services:
  db:
    image: mysql
    ports:
      - "3306:3306"
    environment:
      MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
  web:
    build: .
    # command: bundle exec rails s -p 3000 -b '0.0.0.0'
    volumes:
      - .:/myapp
    ports:
      - "3000:3000"
    depends_on:
      - db

Gemfile

source 'https://rubygems.org'
gem 'rails', '4.2.6'

Gemfile.lock

ブランク

railsアプリ作成

docker-compose run web rails new . --force --database=mysql --skip-bundle

db設定変更

version: '2'
services:
  db:
    image: mysql
    environment:
      MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
  web:
    build: .
    command: bundle exec rails s -p 3000 -b '0.0.0.0'
    volumes:
      - .:/myapp
    ports:
      - "3000:3000"
    depends_on:
      - db

image作成

docker-compose build

実行

docker-compose run web rake db:create
docker-compose run web rails c

docker httpd テスト

Dockerfile

FROM centos:latest
RUN yum -y install httpd
CMD /usr/sbin/httpd -D FOREGROUND
ADD . /var/www/html

htmlファイル

./index.html

hello

dockerコマンド

// image作成
docker build -t httpd-test .

// imageが作成されていることを確認
docker images

// コンテナ起動
docker run -d -p 80:80 httpd-test

// ip確認
docker-machine ip

// 画面確認
http://192.168.99.100/ にアクセス

bash接続

// 接続
docker run -i -t httpd-test /bin/bash

// bash接続時にコンテナが起動していることも確認できる
CA1556:httpd-test 00990310$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
42467f9b45f6        httpd-test          "/bin/bash"         5 seconds ago       Up 2 seconds                            elated_sammet

備考

image作成後に、index.htmlの内容を変更しても、反映されてない。
index.htmlファイルもimageの中に格納されている

s3にACL設定

S3のバケットに対して、バケットポリシーを設定(S3の管理画面で設定できる)

 {
    "Version": "2012-10-17",
    "Id": "S3PolicyId1",
    "Statement": [
        {
            "Sid": "IPAllow",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::club-activities/report_formats/*",
            "Condition": {
                "IpAddress": {
                    "aws:SourceIp": [
                        "***.***.***.**/32",
                        "***.***.*.***/32",
                    ]
                }
            }
        }
    ]
}

rails c 日本が???になるケースの対応

原因

localeのエラー

対応

// エラーがでていることを確認
locale 

// 設定変更
export LC_ALL=ja_JP.utf8

// エラーが解消されていることを確認
locale

// ruby, railsインストール
rbenv install 2.2.4
rbenv global 2.2.4
gem install rails

参考

http://stackoverflow.com/questions/35621614/i-got-warning-setlocale-lc-ctype-when-i-ssh-connect-to-vagrant-centos-6

ブロック要素を左右に配置

html

.content
  .header.clearfix
    %h2 詳細
    = link_to 'ダウンロード', 'https://test.com', class: 'btn btn-primary'

css

.content {
  .header {
    position: relative;
    h2 {
      float: left;
    }
    a {
      float: right;
      position: absolute;
      top: 0;
      bottom: 0;
      width: 110px;
      height: 34px;
      right: 0;
      margin-top: auto;
      margin-bottom: auto;
      margin-right: 0;
      display: block
    }
    &.clearfix:after{
      content: "";
      clear: both;
      display: block;
    }
  }
}