Go to list of users who liked
Share on X(Twitter)
Share on Facebook
More than 5 years have passed since last update.
Dockerで即実行できる、社内・自宅向けオープンソースWebアプリ
デスクトップアプリケーションに比べるとWebアプリケーションの導入は面倒だが、DockerやVagrantの登場によって敷居が低くなっている。誰かがDockerHubへ使いやすいイメージを公開してくれたり、Webアプリの開発元がDockerfileを公式に提供しているケースが増えてきているためだ。
この記事では、筆者が実際に使用したことのあるWebアプリの一覧と、docker-composeの設定ファイル(またはDockerfile)をまとめる。既にDocker環境が整備されている状態であれば、YAMLファイルやDockerfileをコピペしてdocker-compose up -dするだけで自動的にWebアプリケーションが起動する。(もし動かなかったらスミマセン)
- セキュリティとかは考えていないので、LAN内のみでの使用を想定
- 記載の設定では、永続化データはDockerが動作しているマシン内に溜まっていく
CodeBox
- 複数人数で同一ファイルの編集が可能
- GUIからgitのクローン・コミット・プッシュ・プルが可能
- 多くの言語に対応し、そこそこの入力補完機能あり
- 直接サーバのターミナルを開き、gitをCLIから叩いたり、ビルドを走らせたりできる
使用例
- ペアプログラミングに使う
- デザイナー同士でコーディングを共同作業
- Markdownをみんなで共同執筆
リンク
構成例
- データボリュームコンテナ + javierprovecho/docker-codebox
- ポート8000でアクセス
data00codebox:image:busybox:buildroot-2014.02volumes:-/data/codebox:/workspacecodebox:image:'javierprovecho/docker-codebox'ports:-8000:8000volumes_from:-data00codeboxcute-files
軽快に動作するシンプルなnode.js製ファイルビューア。Cute File Browser with jQuery and PHP | Tutorialzineをベースに、作者がnodejsで実装したもの。
- FTPと違い、Webからアクセスできて手軽
- アップロード機能・認証機能はついてない
- サムネイル画像を作る機能もついてない
使用例
- 自炊した電子書籍をLAN内で手軽に共有
リンク
構成例
- データボリュームコンテナ + node
- ポート3000でアクセス
- ホストの
/data/cutefiles内に、誰でも読み取り可能なアクセス権でファイルとフォルダをあらかじめ設置してください
data-cutefiles:image:busybox:buildroot-2014.02volumes:-/data/cutefiles:/cutefilescutefiles:build:cutefilesvolumes_from:-data-cutefilesports:-"3000:3000"FROM node:4.4RUNnpminstall-g cute-files2@1.0.3# httpsでも動くための改造RUNsed-i's/http:\/\//\/\//g'\ /usr/local/lib/node_modules/cute-files2/frontend/index.htmlWORKDIR /cutefilesEXPOSE 3000CMD ["/usr/local/bin/cute-files"]EtherCalc
エクセルに似た多くの機能をWebブラウザで使えるだけでなく、リアルタイムコラボレーションが可能。
- 複数人数で1つのブックを同時に編集可能
- 多くのエクセル関数に対応
- グラフも作れる
- XSLX形式の読み込み・書き出しに対応し、エクセルとの連携も簡単
- ただし書式の読み書きには非対応
- 認証機能はなし
使用例
- 結合テストの一覧へ、テスト結果をリアルタイムで入力しながらみんなで編集
- エクセルのライセンス料をケチる
リンク
構成例
- データボリュームコンテナ + redis + audreyt/ethercalc
- ポート8000でアクセス
data00redis:image:busybox:buildroot-2014.02volumes:-/data/redis:/dataredis:image:redis:3.0.3volumes_from:-data00rediscommand:redis-server --appendonly yesethercalc:image:audreyt/ethercalcports:-"8000:8000"links:-redis:rediscommand:["sh","-c","REDIS_HOST=$$REDIS_PORT_6379_TCP_ADDRREDIS_PORT=$$REDIS_PORT_6379_TCP_PORTpm2start-x`whichethercalc`----cors&&pm2logs"]Etherpad-lite
複数人でリアルタイムに編集できるWebノートパッド。
テキストの変更は自動的に履歴化して保存されるので、いつでも内容をロールバックすることも可能。
- iframeで埋め込み可能
- 認証機能なし
使用例
- 顧客に送るメールを誰かにレビューしてもらいながら添削
- みんなが書き込めるちょっとした連絡場所・リンクの共有場所にする
リンク
- GitHubページ: ether/etherpad-lite: Etherpad: Really real-time collaborative document editing
- みんなでノートをとったりできる同時編集対応のメモツールをいくつか紹介 - Qiita
構成例
- mysql + tvelocity/etherpad-lite
- 永続化データは
/data/mysqlに保存 - 初期化時に空のデータベースを作る為のSQLも添付
- 初回起動時に
/mysql/create_database.sqlが自動実行される
- 初回起動時に
data-mysql:image:busybox:buildroot-2014.02volumes:-/data/mysql:/var/lib/mysql-./mysql/:/docker-entrypoint-initdb.dmysql:image:mysql:5.6.28environment:MYSQL_ROOT_PASSWORD:your_root_passwordvolumes_from:-data-mysqlports:-"3306:3306"etherpad:image:tvelocity/etherpad-litelinks:-mysql:mysqlenvironment:ETHERPAD_ADMIN_PASSWORD:your_admin_passCREATEDATABASEetherpadDEFAULTCHARACTERSETutf8;Wekan (Libreboard)
オープンソースのTrelloクローン。カード型のToDoをドラッグ&ドロップでリストからリストに移動できる。
- リアルタイムに複数人で同じ一覧を閲覧・編集可能
- どう見てもTrelloです。本当に(ry
- 名前が Libreboard → Wekanに変わった
- dockerイメージがlibreboard時代のもの
使用例
- リストをステータスに見たててカンバンとして使う
- リストを人に見たてて、みんなに自分のToDoリストを共有してもらう
- 個人でGTDに使う
- 仕事以外でも使える「Trello」のユニークな10の利用法 | ライフハッカー[日本版]
リンク
構成例
- データボリュームコンテナ + mongo + miurahr/libreboard
- ポート5555でアクセス
data00mongo:image:busybox:buildroot-2014.02volumes:-/data/mongo:/data/dbmongo:image:mongo:3.1.5volumes_from:-data00mongocommand:mongod --smallfileslibreboard:image:miurahr/libreboard:20150503environment:MONGO_URL:mongodb://mongo:27017/libreboardROOT_URL:http://example.comlinks:-mongo:mongoports:-"5555:5555"manet
APIで受け取ったアドレスのスクリーンショットを作成してくれるアプリケーション。
- APIのパラメータで、画像形式やUA、Viewportを細かく指定できる
- 中ではPhantomJSが動いている
- 日本語フォントもインストール済(当然ヒラギノとかではない)
- 最近UIが付いた
使用例
- Redmineと連携して、Wikiやチケットにスクリーンショットを貼る
h3. Qiitaスクショ貼っておきます。!http://(docker-host):8891/?url=http://qiita.com!リンク
構成例
- earlyclaim/docker-manet
- ポート8891でアクセス
- データは永続化しない(再起動の度に消去)
manet:image:earlyclaim/docker-manetports:-"8891:8891"Gitbucket
完成度が高い国産のGitHubクローン。
- GUIでリポジトリの初期化が可能
- 鍵の登録も簡単
- LDAP認証に対応
- かなりGitHubっぽい
- データボリュームコンテナをredmineコンテナから参照すれば連携も簡単
使用例
- redmineだけだとリポジトリの初期化ができないので、これを使ってGUIから作る
- 個人/社内のGitリポジトリを集約して管理
リンク
構成例
- データボリュームコンテナ + f99aq8ove/gitbucket
- ポート8080でWebへアクセス
- ポート29418でSSHにアクセス
data00gitbucket:image:busybox:buildroot-2014.02volumes:-/data/gitbucket:/gitbucketgitbucket:image:f99aq8ove/gitbucketports:-"29418:29418"-"8080:8080"volumes_from:-data00gitbucketcommand:java -jar /opt/gitbucket.warRedmine
人気のIssueトラッキングシステム。プロジェクト管理、タスク管理、グループウェアとして汎用的に使用可能。
- Gmailと連携してメール送信等が可能
- Git, SVNリポジトリとの連携が可能
- LDAP認証に対応
使用例
- プロジェクト管理に使用
- ナレッジベースとして情報を集約する
リンク
構成例
- データボリュームコンテナx2 + mysql + sameersbn/redmine:2.6.3
data00mysql:image:busybox:buildroot-2014.02volumes:-/data/mysql:/var/lib/mysqldata00redmine:image:busybox:buildroot-2014.02volumes:# 添付ファイル保存先-/data/redmine/files:/home/redmine/data/files# プラグイン-/data/redmine/plugins:/home/redmine/data/plugins# テーマ-/data/redmine/themes:/home/redmine/data/themesmysql:image:mysql:5.6.24environment:MYSQL_ROOT_PASSWORD:passwordvolumes_from:-data00mysqlports:-"3306:3306"redmine:image:sameersbn/redmine:2.6.3volumes_from:-data00redmine# - data00gitbucketlinks:-mysql:mysqlports:-"80:80"environment:# REDMINE_HTTPS: true# REDMINE_RELATIVE_URL_ROOT: /redmineDB_USER:rootDB_NAME:redmineDB_PASS:password# SMTP_USER: google@gmail.com# SMTP_PASS: passwordReichat
ワコムのペンタブレットに対応した国産のおえかきチャット。
- ワコムのブラウザ用ペンタブレットプラグインに対応
- 複数人で同じ画面に絵を描くことが可能
- フリーハンドしか描けないので製図的なものには不向き
- 認証はなし
使用例
- デザイナーのラフスケッチに
リンク
構成例
- node
- ポート10133でアクセス
- データは永続化しない(再起動の度に消去)
FROM node:0.12.2RUNnpminstall-g reichatEXPOSE 10133CMD reichatreichat:build:reichatports:-"10133:10133"docker-composeで作る自宅サーバ
こういった色々なWebアプリケーションを1つのサーバに同居させようとすると、ポート番号の重複を避けるためのリバースプロキシが必要になってくる。また、本格的にサーバとして運用するにはdocker-toolboxの仮想マシン内に永続化データを溜めるのも厳しいものがある。
こういった問題を解決し、イミュータブルな構成の自宅サーバを立ちあげた話を下の記事にまとめた。
Vagrant・CoreOS・Dockerでインフラ素人が自宅サーバを立てた話 - Qiita
デモ:
hokkey/vagrant-coreos-docker-demo: Vagrant and Docker profiles for small web application server
Register as a new user and use Qiita more conveniently
- You get articles that match your needs
- You can efficiently read back useful information
- You can use dark theme









