Docker Memo [CentOS7] (MongoDB,Redis,nginx,Node.js)


CentOS7 + Dockerで簡単にサーバーを立てる時のメモ
面倒なのでSELinuxはとりあえずPermissiveで。
データは全てホスト側に保存。(実行のみDockerを利用
[]は自分の環境に置換。 ()は省略可能。

インストール

# Docker Install
 yum install docker
 systemctl start docker
 systemctl enable docker

# SELinux Setting (Permissive)
 setenforce 0
 vi /etc/sysconfig/selinux
  SELINUX=permissive

# Firewall Settings (Add Port)
 firewall-cmd –permanent –add-port=80/tcp
 firewall-cmd –permanent –add-port=3000/tcp

サーバー実行

# MongoDB
 docker run -d -p 27017:27017 -v [MongoDB Dir]:/data/db dockerfile/mongodb

# Redis
 docker run -d -p 6379:6379 -v [Redis Dir]:/data dockerfile/redis

# Nginx
 docker run -d -p 80:80 -v [Nginx Dir]:/var/www/html dockerfile/nginx

サイトの追加、設定変更する場合 -v [Nginx Settings Dir]:/etc/nginx/sites-enabled で設定ファイルをマウントすればOK

# Node.js
 docker run -d -p 3000:3000 -v [Node.js Dir]:/usr/src/app -w /usr/src/app node:0.10 node app.js

# Node.js (npm install)
 docker run -it –rm -v [Node.js Dir]:/usr/src/app -w /usr/src/app node:0.10 npm install

どういうコンテナか確認する時はbash等で起動すると分かりやすいかと思います。
 docker run -it –rm [Container] bash

Docker Run

 docker run [Docker Run Options] ([Run Command])

[Docker Run Options]
 ・ボリュームをマウントする (–volume)
  -v [Host Volume]:[Container Volume](:ro)

 ・ポートを割り当てる (–publish)
  -p ([IP]:)[Host Port]:[Container Port]

 ・作業ディレクトリを設定する (–workdir)
  -w [Container Directory]

 ・コンテナに名前を付ける
  –name [Container Name]

[どちらか選択]
 ・常に実行 (–detach)
  -d

 ・単一コマンド実行&実行後コンテナ削除 (–interactive –tty –rm)
  -it –rm

その他

# Docker (→詳細)
 docker start [Container ID]
 docker restart [Container ID]
 docker stop [Container ID]
 docker rm [Container ID]
 docker inspect [Container ID]
 docker logs [Container ID]
 docker top [Container ID]
 docker cp [Container ID]:[Container File] [Host Dir]
 docker ps
 docker exec -it [Container ID] bash

# Systemctl
 systemctl start [Service]
 systemctl status [Service]
 systemctl stop [Service]
 systemctl enable [Service]
 systemctl disable [Service]
 systemctl list-unit-files

# Firewall
 firewall-cmd –permanent –add-port=[Port]/[tcp|udp]
 firewall-cmd –permanent –remove-port=[Port]/[tcp|udp]

JavaScript to TypeScript Type Definitions (d.ts) Auto Converter 0.1.0


お久しぶりです。最近TypeScriptで遊んでるすてねこです。

JavaScriptからTypeScriptの定義ファイルを手作業で頑張って作ってたのですが、とーってもめんどくさくなってきました(

で、自動で変換できないかって思いました。

次の日あたりに簡単なのを試作・・・なんだか、いけそう!

ちょこちょこ改良を重ね無駄な機能をつけていきました!

そろそろ作る気力がなくなってきたので、公開してモチベーションを高めようかとか思います。

まだまだテスト版でバグとかたくさんあるかと思いますが・・・
コメントとか頂けると喜んで改良・修正します!\(>ヮ<)/
ブログまたは、Twitter @suteneko1027 までお願いします~

このアプリケーションを使って何が起こってもすてねこは責任を取りません!
あとアプリケーションの改良して公開したりは取りあえずおやめください><
あ、もちろん、このアプリケーションを使って生成された定義ファイルはご自由に使用してください!

[ 単純な定義ファイルの作り方 ]

1.CodeにJSのクラスっぽいものを書きます
2.Codeの最後に作ったクラスの定義を書きます
(複数ある場合は配列にしてください)
3.Convertを押すとResultとOutput DirectoryにTypeScriptの定義ファイルが生成されます。

4011f89f09dc45bf62ff6eab6498ab4c

無駄機能: Optionsのtypeをtsdからtsに変更してConvertします。
すると関数の定義まで出してくれます。
(※JSから完全なTSができるわけではありません。)

3ba846c0853244067536354f981032ea[1]

[ Node.JSモジュールの定義ファイルの作り方 ]
1.実行ファイルと同じフォルダにnode_modulesフォルダを設置します。(npmとかでインストールまたはコピー)
2.Codeにモジュールのオブジェクトを生成します。
3.Convertを押すとResultとOutput DirectoryにTypeScriptの定義ファイルが生成されます。

2775fe4881271a284602a7a2b677d745

 

[ ダウンロード ]
Windows版 JS2TSD 0.1.0 : js2tsd-win-0.1.0
Mac版 JS2TSD 0.1.0 : js2tsd-mac-0.1.0.app
(Mac版はMac持ってないので、よくわからないけど一応公開します。動いたら報告頂きたいです!)

Linux版は要望あればアップしますー。

どうなってるか詳しくはあとで書きます。。。
オブジェクトからたどったり、関数を文字列化して解析したりしてます。
あとアノテーションも使ってごにょごにょしてます。

Node.js Tools For Visual Studio Can’t Debug?


今月の初めにNode.js Tools For Visual Studio 1.0 betaが公開されましたね。

TypeScriptにも対応しデバッグもできて素晴らしい!

のですが、、なぜか新しいプロジェクトからTypeScriptのNode.jsプロジェクトを作成してもデバッグできない・・・

そもそもDebugで起動すると”debugger listening on port 5858”とでるだけで、app.tsが一行も実行されない。。(※Releaseだと実行されます。)

デバッグできるプロジェクトと比較したところ・・・全てのファイルが完全に一致。でも起動させると、やはり片一方はデバッグできてもう一方はできない。

まさかと思い、デバッグできない方のapp.tsの文字コードを確認するとUTF8 BOM。

はっΣと思いUTF8(BOM無)に文字コードを変更。動いた!!

文字コードの変更は、app.tsを開き、ファイル保存オプションの詳細設定を開き、一番下のほうのUnicode(UTF-8 シグネチャなし – コードページ 65001)を選択してOKでできますー。

6a0bf56113ab15e47e4a137172a4e6c9

追記
app.jsが文字コードUTF8 BOM付になっているかと思います。一度app.jsを削除するか、app.jsの文字コードもBOM無に変更しましょう。

TypeScript Definition Manager


TypeScript型定義ファイルの管理ツール(tsd 0.5~)の使い方
忘れてしまうのでメモ。
※tsd 0.3までと最新の0.5系ではコマンドが全く違います

インストール

npm install -g tsd

初期化

tsd init

定義ファイルのインストール

tsd query モジュール名 --action install

よく使うオプション
-r / --resolve (参照の依存関係を含める)
-o / --overwrite (上書き)
-s / --save (設定を保存)
-a / --action <name> (アクション)
    install (インストール)

オプションを省略せずに書いてたら長いので
tsd query モジュール名 -rosa install

使用例

tsd query node -rosa install
tsd query express -rosa install

tsファイルに定義ファイルの参照追加
typings以下にd.tsファイルがインストールされる
また、全てインクルードするために、tsd.d.tsも自動生成される

/// <reference path="./typings/node/node.d.ts" />
/// <reference path="./typings/express/express.d.ts" />
または
/// <reference path="./typings/tsd.d.ts" />

VisualStudio 2013 Update 2 RC


VisualStudio 2013 Update 2 RCが公開されましたね!

すてねこも早速入れてみたのですが、TypeScriptのプロジェクトが使えなくなってしまいました。。

“プログラムと機能”から”Microsoft Visual Studio Professional 2013″を修復したら正常に動くようになりました!

ちゃんとプロジェクトのTypeScriptのバージョンが古いけどバージョンアップする?って出てきました!

お試しあれー

HAXM for Android Development


久しぶりにAndroid開発環境を設定しました!

構築環境はWindows8.1です。

Android開発には欠かせない、エミュレータを高速化するIntel VTを使ったIntel HAXM

このHAXMをインストールしようとすると、このパソコンはIntel VTに対応していません!とかでます。。

BIOSを確認→うん、有効になってる大丈夫だ。

Intelのサイトから最新版をチェック、なんかWindows8.1向けにもでてるなー、インストール→やっぱり無理。
http://software.intel.com/en-us/android/articles/intel-hardware-accelerated-execution-manager

あ!そういえばHyper-VいれてるとVT使えなかった気がする・・・。
と思いだして、Hyper-Vをアンインストール

これでいけました!
でも、Hyper-V無効化するのは、ちょっと不便です。なんとかならないのかなー。

Rebuild TypeScript


こないだのブログでTypeScript保存時に自動でコンパイルされるようになったのはいいんだけど、、

追加されたファイルとかjsファイルを削除した後、自動でコンパイルされてくれない><。

一つ一つファイルを編集して保存とかとっても面倒です。。

とりあえず、バッチファイルで全てのtsファイルをリビルドできるようにしました。

こんな感じです。

rebuild.bat

for /f "usebackq delims==" %%i IN (`dir "*.ts" /s /b`) DO tsc -t ES5 -m commonjs "%%i"

これを実行することで全てのtsファイルがコンパイルされます。

他にいい方法があれば教えてくださいっ♪

以上です!

Node.js Tools For Visual Studio


忙しくて一カ月もブログを放置してました;; WPFでアプリ書いたりしてました。。

Node.jsVisualStudio上で開発するためのツールの最新版がビルド(2014-03-12)されてました。

Node.js Tools For Visual Studio
https://nodejstools.codeplex.com/releases/view/116275

VisualStudio上でNode.jsをデバッグできたり便利な機能が備わってます。
いつの間にか、npm のパッケージのインストールやアップデートもできるようになってました!

最近、Node.js+TypeScriptで開発してるのですが、tsファイルを追加してもコンパイルされてくれません(´;ω;`)
多分TypeScriptのプロジェクトとNode.jsのプロジェクトファイルをごにょごにょすればできるはずです!

が、それはとっても面倒だなって・・・思ってオプションを見てると、
簡単にできそうなオプションがありました!

[ツール] → [オプション]
[テキストエディタ] → [TypeScript] → [プロジェクト] → [全般]
プロジェクトの一部でないTypeScriptファイルを自動的にコンパイルする

なんだかこれを使えばいけそうです!

b53f8cb25084aca03a7787d735650215

設定してtsファイルを作って保存すると・・・
ちゃんとjsにコンパイルされました!

あ、コンパイルしてるだけなのでtsファイルでブレークポイント設定してもデバッグできないので悪しからず。デバッグはjsでやってくださいっ。

Tenma Tenjin Umeshu Taikai


大阪天満宮で行われている梅酒の試飲会に行ってきました!

700円で全国各地の梅酒飲み放題です~\(>ヮ<)/
最後に気に入ったお酒の番号を投票しますー。

梅酒っぽくない果実酒やコーヒーのお酒などもありました。
美味しいお酒をたくさん飲めましたー。

来週までやってるので興味のある方は是非ヾ(〃l ω l)ノ゙

IMG_20140216_123247

Puyopuyo Tetris


少し遅いですが、昨日ぷよぷよテトリス買いました!

本体持ってなかったので3DS LLも買いましたよ~ヾ(〃l ω l)ノ゙

楽しいですね。ぷよぷよとテトリス!

今日一日中やってました~。

おかげでアドベンチャーモード130%ー!(EX章も買った←)
一日でアドベンチャーモード完全クリアです\(>ヮ<)/

ぷよテトミックスが今までと少し違った趣向で楽しいですね。

難しいですが連続で消すと連鎖が繋がって意外と面白い!!

はい、楽しいです。ぷよぷよテトリス。
http://puyo.sega.jp/puyopuyotetris/

以上、すてねこでした!