app: image: busybox container_name: app volumes: - /home/vagrant/opt/mysql:/var/lib/mysql mysql: image: mysql container_name: mysql environment: MYSQL_ROOT_PASSWORD: password ports: - "3306:3306" volumes_from: - app パーミッションエラーにならないパターン 「/var/lib/docker/volumes/mysql-db」フォルダに永続化される ※ ただし、「docker-compose down -v」されるとボリュームも削除されるので注意! トップレベルにvolumes:を置いてボリュームの定義する
composeファイルのバージョン2以降で、YAMLのトップレベルにvolumes:を置いてボリュームの定義をし、service:内でそのボリューム名を指定するという書き方ができます。 version: "2" services: database: image: mariadb:10 volumes: - datastore:/var/lib/mysql ...(略)... volumes: datastore: Docker EngineやDocker Composeのドキュメントを見るとこんな感じで書いてあるかと思います。この書き方だとdatastoreはlocalというドライバを使用して/var/lib/docker/volumes/datastore/_dataあたりのディレクトリをコンテナ内にマウントするという動作になります。 消えちゃう問題 この方式は各サービスのvolume
この記事は12/1のDocker2 Advent Calendar, 12/3のHamee Advent Calendarの記事です。 こんにちは。 docker composeめちゃくちゃ便利ですよね。 Chef, Vagrant, Puppet, Ansible, Fabric…とプロビジョニングツールとか仮想化ツールを色々触ってきましたが、 それらよりずば抜けて扱いやすいと思っているツールです。 で、ローカルで開発している時に困るのが、 MySQLをはじめDBにデータを持ってもコンテナを破棄するとデータがすっ飛ぶ 問題です。 軽量なアプリの場合ならDB破棄してシード流して、、、という構成でもイケるかも知れませんが、多くの場合オーバーヘッドが大きすぎてまともに開発できなくなると思います。 Docker for Macを使用している場合はこの問題は難なく解消できるのですが、 docker
HDE クラウドプロダクト開発部の小本です。 私のお気に入りツールdirenvを紹介します。 direnvとは・・・ シェルのcdをフックし、ディレクトリごとに環境変数を自動設定するツール pyenvなどを置き換えることができるツール Pythonistaも、Rubyistも、Gopherも、みんな使って損はないツール direnv以前の世界(pyenvはawesomeだった) Pythonには、プロジェクトそれぞれに専用の環境を作ってPythonのバージョンやライブラリを切り替えることができるツールがあります。 専用環境を作れる virtualenv 専用環境をコマンドで簡単に切り替えられる virtualenvwrappper と進化し、その最終形態がpyenvです。 pyenvはあらかじめディレクトリに環境を紐付けておくと、ディレクトリにcdしたとき、勝手に環境を切り替えてくれます。
The Qiita Advent Calendar 2017 is supported by the following companies, organizations, and services.
Discordめっちゃいい!という話です。エンタープライズ向けではないけどコミュニティやイベントには最強じゃないでしょうか。 Card はい、わたしは ISUCONというパフォーマンス・チューニングコンテストの運営をやってるんですが、毎年悩むのがサポートチャット。「Skypeでええやん」とかたまに言われますが、参加者全員に同時に通知したいとか、参加者の前でやり取りすれば直接関係ない他の参加者も状況把握しやすいという理由でサポートチャットを導入してます。 要件としては ・URLで招待が出来る ・1日目と2日目と参加者がわかれるので別々の部屋が立てられる ・MAXで1000人超が同時に利用してもサービスが落ちない というところ。 プラス、あるといいなってのはMacやスマホアプリ対応くらいのもの。過去にはidobataという日本で開発されているチャットアプリを利用させてもらっていて、今年はどこで
みなさんのISUCONの参戦エントリを楽しく読みつつ、心にはダメージを負っているuzullaです、こんにちは。もう一週間くらい後に読もうかな。 さて、一昨日のISUCONでは繰り返しnginxのクエリやDBのクエリ解析結果をみていました。そこらへんを毎回手で叩くと大変だし、ファイルのシェアも面倒なので、解析したらそのままSlackにはりつけていました。その作業は半分くらい自動化されており、そのメモです。 使ったツール(一部) alp pt-query-digest slackcat github.com alpについては皆さんご存じかもですが、LTSV形式のログをよしなに集計してくれるツールです。このツールで強いのは、/keyword/hogeと/keyword/ugoといった最近のバラけるURLを正規表現でまとめる事ができる事ですね。主にアクセス回数やアクセス平均時間などを確認するために
LTSV 形式の Web サーバのアクセスログを集計する、 tkuchiki/alp · GitHub を作成しました。 Install https://github.com/tkuchiki/alp/releases から各 OS 用のバイナリを取得できます。 Linux 以外では動作確認していませんが、おそらく動作すると思います。 Usage Labeled Tab-separated Values (LTSV) の Labels for Web server's Log みたいに log を出力すれば、 $ ./alp -f access.log +-------+-------+-------+-------+-------+-----------+-----------+-----------+-----------+--------+----------+ | COUNT |
isucon.net このブログでもいくつか記事を書いている通り半年間、沖縄のノンプログラマーな学生3人にISUCONを通してプログラミングを学び、それをもとに就職活動しよう、みたいなプロジェクトをやってきました。今回はその半年間の集大成としてのISUCONに参加してきた、というやつです。 競技者として github.com まずは競技者として、手短に。ISUCON7に「okinawa.rb」というチーム名で参加してきました。結果としては、スコア的に敗退、最終のbenchでもfailしてしまい惨敗でした。 名前の通り okinawa.rbに普段参加しているメンバー(@tompng, @siman-man)で出場しました。構成としてはぼくが、インフラ周りを触って、ぺんさんとしーまんさんにアプリケーションコードを見てもらう感じでやりました。今回のアプリについては他の方もたくさん記事を書かれてい
まずは出題と運営チームの皆様にお礼を。予選から1チーム3台、合計1200台のサーバを用意するという空前の規模で、快適な競技環境を用意していただいてありがとうございました。 isucon.net 今回は ISUCON 4 の時の fujiwara組 (@fujiwara, @acidlemon, @handlename) を再結成して、自称社内最強チームで望むことに。1日目には同じくカヤックから参戦のチーム MSA が1位を取っていて、これは予選通過はもちろん、スコアでもできれば負けたくないという戦いでした。 最終的には 48万点越え、両日通してのスコアでも3位ということで、まずまずの結果が残せたと思います。 やったこと あらかじめ用意しておいた Chef recipe で各種ツールや各人のアカウント作成、公開鍵設定 さくらのクラウドで用意されている Ubuntu から使われるとすれば今回は
@egapoolです。今回初めてISUCON7に参加させていただきました。(チーム名:元pyns) 当日やったこととこかはこちらにまとめています。 ISUCON7に参加して予選突破しませんでした。 – そろそろちゃんとやります 今回のお題の一つ目の壁は、いかに画像ファイル(アバターアイコン)をキャッシュさせてサーバーからデータを返さないようにするかでした。 8時間の大部分をこの対応に費やしましたが解決は出来ませんでした。 原因はきっちり304を返すための基礎知識が足りていなかったことです。 ですのでこれを機に勉強しなおしてみました。 304 (Not Modified) 大前提ですが、304ステータスコードは キャッシュの有効無効の確認付きリクエストに対して、有効である場合に返すステータスコード です。 この場合サーバーはリソースデータ(ペイロード)を送信しません。 すなわち,サーバは、[
「あいつらは、内容の無いことばかり喋っている」と言って、学校や職場の同僚を馬鹿にする人は多い。思春期にありがちなセリフかと思いきや、年配の人が、同じようなことを喋っているのを見て驚くこともある。ほとんどの場合、このセリフは人望が無い人の口から出てくる。 いつも哲学している人や、いつも世界の重要事についてだけ考えている人は、世間には滅多にいない。いや、実のところ、「あいつらは内容の無いことばかり喋っている」と言っている本人だってそうなのだ。有意味なこと・重要なことだけを喋る人間など、まずもって存在しない。仮にいるとしたら、事務的な内容や数学の解法のような内容しか喋らない、ロボットじみた人間になるだろう。 少なくとも、「あいつらは内容の無いことばかり喋っている」などという、内容の無いことをペラペラ喋ったりはしないだろう。 「コミュニケーションの内容」より「コミュニケーションしていること」のほう
昨年、libpam-mrubyを使って、Linux Serverにおける認証やその管理について思うところを書きました。今回はその続きです。 libpam-mrubyを使ってGithubのチームで認証をする OSSを使ってのLinuxユーザ管理といったら、一般的にOpenLDAPを用いると思いますが、LDAPって統合管理でやれること多いかわりにちゃんと使おうとしたら敷居が高い感じがするんです。LDAPを触る頻度が低いと、LDAPコマンドを毎回ググる事になり、地味に面倒というのは経験している人多いと思います。そして、自分たちがLDAPを通して解決したいことって単にsudo権限を持つ管理者かそうでないユーザの管理で意外とシンプルだったりします。それに気づかせてくれたのは、イケてる同僚の@pyama氏プロダクトのSTNSというやつで、STNSはユーザや鍵の管理をTOMLで行うというものでした。設定
Docker Composeはいいぞ! この記事はTech KAYAC Advent Calendar 2016の15日目の記事です。 こんにちは この6月にKAYACに中途入社し技術部でゲームのサーバーサイドを担当しているひだかです。 新卒でも中途入社でも研修などを終え実務に入った時に一番最初に悲しい思いをするのは開発環境構築の作業ではないでしょうか? 実際に私もあまり整備されていないドキュメントを何度も見て、長い時間をかけやっと構築完了したと思ったらミドルウェアのバージョンが違うとかで序盤からやり直しということがありました。 知らない言語やOSやミドルウェアやフレームワークやモジュール群を前に新人はあまりにも無力です。 そんな時はInfrastructure as Codeです。Dockerを使うのです。 誰でもボタンポチーで開発環境を立てられるDockerを使うのです。 幸いなことに
あけましておめでとうございます! @acidlemon です。 2017年1月18日発売のSoftware Design 2017年2月号の第一特集「いまはじめるDocker」に記事を寄稿しました。第5章の「導入事例で見えてくるDockerの使いどころ」を私と同僚の矢吹 (@Konboi)で書きました。 ソフトウェアデザイン 2017年 02 月号 [雑誌] 出版社/メーカー: 技術評論社発売日: 2017/01/18メディア: 雑誌この商品を含むブログ (1件) を見る 執筆の話をいただいたきっかけは過去に書いたDockerで開発環境を上げ下げするmirageの記事でした。今回の特集はプログラマー向けのDocker入門ということで、プログラマー向けであれば本番環境のデプロイの話よりもまず自分の開発環境からDockerを使い始めて便利さを感じていく内容がよいであろう、ということで開発現場で
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く