LoginSignup
6
4

More than 5 years have passed since last update.

Azure 界隈で Docker をはじめる勉強会資料

Last updated at Posted at 2017-05-31
1 / 12

はじめに

このドキュメントは Azure を学ぶエンジニアが WebApp on Linux をはじめとするコンテナ系サービスを扱う前に、まずは Docker を学ぶための勉強会資料です
スライドモードに最適化しています


本題の前に

  • 手元のPCがBIOSなどの関係で Docker 動かせない人
    以下のコマンドで Azure 上に CoreOS 立てましょう
    (とはいえ azure-cli の Docker イメージ動かせないので誰かに立ててもらうのが吉)
az login

az group create (groupname)
az vm create --name node-1 --resource-group (groupname) --admin-username core --admin-password (password) --image CoreOS:CoreOS:Stable:latest --authentication-type password

参考: CoreOS - Microsoft Azure


なぜ Docker なのか

  • Infrastructure as a Code の体現
  • プログラマの守備範囲拡大に伴う開発と本番の環境統一化
  • 巨人やOSS界隈で整備されつつある環境
    WebApp on Linux もコレ

それぞれのトピックを参加者間で話しましょう
あとはさんざん語られてるので各自調べましょう


はじめる

用意されている Dockerfile で docker build, docker run する

  • Azure のビルトインイメージ で公開されているものをダウンロードし、docker build および docker run します
  • ruby, php, node, dotnetcore のうちどれかで試しましょう

ここからハンズオン or 演習


Dockerfile を書く


Docker Hub でビルドと公開

  • GitHub で公開したリポジトリを Docker Hub でビルドします
    Automated Build は GitHub の変更検知してリビルドするので便利です docker-hub-create.png

Azure

Webapp on Linux

Azure Database for MySQL

  • 作成
  • ファイヤーウォール規則を設定
    • Webapp のグローバルIPは WebApp の「プロパティ」「送信 IP アドレス」で確認
  • redmine 用のスキーマは手元から mysql クライアントで作成しましょう

ヒント

Docker file

  • FROM 句でベースとなる Docker イメージを指定します
  • Windows 環境で.shを書く場合は改行コードが LF になっていることを確認します

Webapp on Linux

  • Redmine のイメージでは、Rails の db:migrate をコンテナ実行時にキックしています
    コンテナ内の /usr/src/redmine/log/production.logActiveRecord::StatementInvalid (Mysql2::Error: Table 'redmine.settings' doesn't exist が出て動かないときはローカルから以下で回避
docker pull (docker_repository)
docker run -it (docker_repository) bash
# ここから docker コンテナ内
cd /usr/src/redmine
env REDMINE_DB_MYSQL=(mysql_db_name).mysql.database.azure.com REDMINE_DB_USERNAME=(mysql_username)@(mysql_db_name) REDMINE_DB_PASSWORD=(mysql_password) rake db:migrate

Database for MySQL

  • SSL 接続の強制は DockerHub の redmine イメージからそれなりに変更が必要なので、暫定的に切っておくことをオススメします
    (もちろんプロダクションはSSL使いましょう)

実装例

REDMINE_DB_MYSQL=(mysql_db_name).mysql.database.azure.com
REDMINE_DB_USERNAME=(mysql_username)@(mysql_db_name)
REDMINE_DB_PASSWORD=(mysql_password)

以上

6
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4