Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
UniStudy#0 今時のDevOpsの取り組み事例集
Search
Wataru Noguchi
October 16, 2015
Technology
0
530
UniStudy#0 今時のDevOpsの取り組み事例集
* Docker
* Jenkins, Capistrano, GitLab, ChatWork
Wataru Noguchi
October 16, 2015
Tweet
Share
More Decks by Wataru Noguchi
See All by Wataru Noguchi
しょしんしゃようDocker事例集
wnoguchi
0
1.4k
Other Decks in Technology
See All in Technology
Zero Trust DNS でより安全なインターネット アクセス
murachiakira
0
130
AI機能プロジェクト炎上の 3つのしくじりと学び
nakawai
0
180
GCASアップデート(202508-202510)
techniczna
0
220
文字列操作の達人になる ~ Kotlinの文字列の便利な世界 ~ - Kotlin fest 2025
tomorrowkey
2
310
書籍『実践 Apache Iceberg』の歩き方
ishikawa_satoru
0
410
Open Table Format (OTF) が必要になった背景とその機能 (2025.10.28)
simosako
3
580
プロダクト開発と社内データ活用での、BI×AIの現在地 / Data_Findy
sansan_randd
1
730
AIエージェントによる業務効率化への飽くなき挑戦-AWS上の実開発事例から学んだ効果、現実そしてギャップ-
nasuvitz
5
1.6k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
2
210
ヘンリー会社紹介資料(エンジニア向け) / company deck for engineer
henryofficial
0
440
InsightX 会社説明資料/ Company deck
insightx
0
150
触れるけど壊れないWordPressの作り方
masakawai
0
610
Featured
See All Featured
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
253
22k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1k
A Tale of Four Properties
chriscoyier
161
23k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
31
2.7k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
22k
The Pragmatic Product Professional
lauravandoore
36
7k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
34
2.3k
Rails Girls Zürich Keynote
gr2m
95
14k
A designer walks into a library…
pauljervisheath
209
24k
It's Worth the Effort
3n
187
28k
Transcript
今時のDevOps 取組み事例集 (株)ユニキャスト ソフトウェアエンジニア 野口航 第0回 ユニキャスト勉強会@日立市
お前誰?: 野口航(@wnoguchi) • しがないソフトウェアエンジニア(29歳) • 茨城県日立市在住 • 愛機は今話題沸騰中のL•n•v• • DevOpsへ取組み
• 株式会社ユニキャスト所属 • シェアハウス「コクリエ」に居住 • 夢はユーザ企業、とうきょうぐらし!
もくじ(とりくみ) • 事例1: 自分のサイトを Docker(さくらのVPS)で運用してみた(一部 障害あり) • 事例2: 会社の開発環境用Vagrant仮想マシンをDockerで書き換えて みた(失敗)
• 最近のトレンド: Boot2docker より Docker Toolbox のほうがよさ げ? • 事例3: Jenkins, Capistrano, GitLabを連携した自動デプロイ環境 の構築
事例1 自分のサイトをDockerで運用してみた • はてなブログで http://blog.pg1x.com/ 技術ブログ運営しています。 • 静的コンテンツもまとめて扱いたくて http://pg1x.com/ に統合したい。
• Dockerでサイト作ってみた • アップロードしたファルも永続化するようにした • MySQLのデータは永続化される
事例1 自分のサイトをDockerで運用してみた Dockerfile #wordpress/Dockerfile at 4823a04099 · docker-library/wordpress # https://goo.gl/qjtEPa
FROM wordpress # ボリュームの共有をおこなうため、実行ユーザ、グループのIDを変更 RUN usermod -u 1000 -U www-data RUN groupmod -g 1000 www-data VOLUME [“/var/www/html/wp-content”] ENTRYPOINT ["/entrypoint.sh"] CMD ["apache2-foreground"] Wordpressのイメージは自前でカスタマイズ DockerのVolumeのアクセス権限の問題について - Qiita http://goo.gl/6DdCQ5
事例1 自分のサイトをDockerで運用してみた [wnoguchi@smtp docker-wordpress]$ docker build -t wnoguchi/wordpress . Sending
build context to Docker daemon 20.85 MB Sending build context to Docker daemon Step 0 : FROM wordpress ---> 4613a7aba13e Step 1 : RUN usermod -u 1000 -U www-data ---> Running in bde6cfe62556 ---> 4d10460a2de0 Removing intermediate container bde6cfe62556 Step 2 : RUN groupmod -g 1000 www-data ---> Running in f2f3fb96616e ---> 81b7b01c71dc Removing intermediate container f2f3fb96616e Step 3 : ENTRYPOINT /entrypoint.sh ---> Running in a4dc06c85735 ---> 992c2908310e Removing intermediate container a4dc06c85735 Step 4 : CMD apache2-foreground ---> Running in c1bc24c7658d ---> d3348cf9792c Removing intermediate container c1bc24c7658d Successfully built d3348cf9792c
事例1 自分のサイトをDockerで運用してみた docker run -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock jwilder/nginx-proxy
docker run --name=mysql -d ¥ -e 'MYSQL_ROOT_PASSWORD=blahblahblah' ¥ -e 'MYSQL_DATABASE=wordpress' ¥ -v /opt/mysql/data:/var/lib/mysql ¥ mysql:5.7 docker run -d ¥ -e VIRTUAL_HOST=pg1x.com ¥ -e 'WORDPRESS_DB_PASSWORD=blahblahblah' ¥ -v /opt/wordpress/wp-content:/var/www/html/wp-content ¥ --link mysql:mysql ¥ wnoguchi/wordpress
事例1 自分のサイトをDockerで運用してみた
事例1 自分のサイトをDockerで運用してみた
事例2 会社の開発環境用 Vagrant仮想マシンをDockerで書き換えてみた • 結論:失敗しました • やらなきゃならないこと • 1つのVMの中にApache, PHP,
MySQL, ImageMagick ごった煮 • サービスごとに連携している部分は切り離して、 mutable な部分はボリュームとして 切り出さないといけない • つまり、APのコンテナとMySQLのコンテナには最低限分離しないといけない • PHPアプリケーションのコンテナとMySQLのコンテナのリンクに失敗(応用 力と時間がなかった)
事例2 会社の開発環境用 Vagrant仮想マシンをDockerで書き換えてみた Vagrant.configure(2) do |config| config.vm.box = "puppetlabs/centos-7.0-64-nocm" config.vm.network
"forwarded_port", guest: 80, host: 8080 config.vm.network "forwarded_port", guest: 3306, host: 3306 config.vm.provision "shell", inline: <<-SHELL sudo yum -y install httpd sudo yum -y install php sudo yum -y install php-mbstring sudo yum -y install php-mysql # EPEL リポジトリを有効にして php-mcrypt を入れる sudo rpm -ivh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel- release-7-5.noarch.rpm sudo yum -y install --enablerepo="epel" php-mcrypt sudo yum -y install mariadb-server sudo yum -y install ImageMagick sudo systemctl enable httpd sudo systemctl enable mariadb sudo systemctl start httpd sudo systemctl start mariadb sudo systemctl disable firewalld sudo systemctl stop firewalld # デバッグ用 sudo yum -y install php-xdebug # 手動実行してください(MariaDB) #mysql_secure_installation SHELL end FROM centos MAINTAINER
[email protected]
RUN yum -y install httpd RUN yum -y install php RUN yum -y install php-mbstring RUN yum -y install php-mysql # EPEL リポジトリを有効にして php-mcrypt を入れる RUN rpm -ivh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel- release-7-5.noarch.rpm RUN yum -y install --enablerepo="epel" php-mcrypt #RUN yum -y install mariadb-server RUN yum -y install ImageMagick # デバッグ用 RUN yum -y install php-xdebug # 手動実行してください(MariaDB) #mysql_secure_installation # コンテナ内のポート80番を公開 EXPOSE 80 # ENTRYPOINT ["/usr/sbin/httpd"] CMD ["-D", "FOREGROUND"] いい感じ!! Vagrantfile Dockerfile
事例2 会社の開発環境用 Vagrant仮想マシンをDockerで書き換えてみた いい、感じ? vagrant up vagrant up vagrant teraterm
docker run –d ¥ --link mysql:mysql ¥ unicast/foo-img Windows上でやってます(Windowsは修羅の道)
Boot2docker使っていたらDocker Machine奨 められた WARNING: The 'boot2docker' command line interface is
officially deprecated Docker Machine 使えよ! っていうかDocker Toolbox使おうぜ! https://www.docker.com/toolbox 乗るしかない。 このビッグウェーブに。 Boot2docker Docker Toolbox
Boot2docker使っていたらDocker Machine奨 められた • これで僕も流行に乗れる • UIが Windows 10 に似てる
• プログレスバーが円に なってて特に
Boot2docker使っていたらDocker Machine奨 められた ENOENT: no such file or directory, open
'C:¥Users¥<redacted>¥ca.pem' Windowsを使っているからなのか?!
参考書 • Dockerエキスパート養成読本[活用の基礎と実践ノウハウ満載!] (Software Design plus) http://www.amazon.co.jp/dp/4774174416 • → http://goo.gl/gVjwAu
事例3: Jenkins, Capistrano, GitLab を連携した 自動デプロイ環境の構築 デプロイ cap demo deploy
定期的にチェック Gitチェックアウト ビルド結果通知
事例3: Jenkins, Capistrano, GitLab を連携した 自動デプロイ環境の構築
事例3: Jenkins, Capistrano, GitLab を連携した 自動デプロイ環境の構築
ご清聴ありがとうございました。