dockerとnginxの勉強はじめました
勉強ログ的なものです。
今回は、dockerでnginxを動かす第一歩です。
dockerのインストール
archlinuxなので
$ yaourt docker
で終わりでした。
daemonで動いていないといけないので、
$ sudo systemctl enable docker $ sudo systemctl start docker
と入力して、daemonを起動しときます。
今回はUbuntuで
以下のコマンドでubuntuのイメージを引っ張ってきます。
$ docker pull ubuntu
docker imageの作成
適当なフォルダを作って、
$ touch Dockerfile $ emacs Dockerfile # viとか適当なエディタで
Dockerfileの中身は以下の感じ。
# Getting Base Image FROM ubuntu:latest # Author info MAINTAINER asatake RUN apt-get update RUN apt-get install -y vim # エディタを適当に入れる RUN apt-get install -y curl RUN apt-get install -y nginx # Port EXPOSE 22 80
あとは
$ docker build -t asatake/nginx_ubuntu .
みたいな感じでビルド。しばらく待ちます。
実際にnginxが動くかテスト
まずはコンテナ内に入ってみます。
$ docker run -it -p 8080:80 asatake/nginx_ubuntu /bin/bash
すると普通にbashが開くので、nginxをとりあえず起動してみます。
# service nginx start
デタッチするために、キーボードで
Ctrl+o Ctrl+q
と押します。
実際にブラウザを開いて見てみます。
localhost:8080
に接続して、nginxのスタート画面が出たら成功!
参考文献
javascriptのJSONパースで嵌った
この記事は未解決です。
書いたコード
family.json
{ "list":[ { "id": 1, "name": "波平", "parent": null, "marrige": 2, "children": [3,4,5] }, { "id": 2, "name": "フネ", "parent": null, "marrige": 1, "children": [3,4,5] }, { "id": 3, "name": "サザエ", "parent": [1,2], "marrige": "6", "children": [7] }, { "id": 4, "name": "カツオ", "parent": [1,2], "marrige": null, "children": [] }, { "id": 5, "name": "ワカメ", "parent": [1,2], "marrige": null, "children": [] }, { "id": 6, "name": "マスオ", "parent": null, "marrige": 3, "children": [] }, { "id": 7, "name": "タラオ", "parent": [3,6], "marrige": null, "children": [] } ] }
sazae.js
$(function(){ $.getJSON("json/family.json", function(){ console.log("success!"); }); });
Chromeで確認
F12とか押してConsoleを確認。すると…
XMLHttpRequest cannot load file:///Users/test/Project/json/family.json.Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource.
なんじゃこりゃ。
原因
Chromeではセキュリティ上の観点から、ローカルファイルにリクエストを送ることができないみたい?
ajax使わないようにしても、Chromeでは動かず、Firefoxなどでは動く。
わけがわからないのでだれか原因と対策を教えてください…。
追記
Chromeではajaxでローカルファイルにアクセスするのはセキュリティ上無理ということですが、
jQueryだろうとなんだろうと駄目なので、おとなしく他ブラウザ使ったほうが良さそうです。
試しにXMLHttpRequestでやってみましたが駄目でした。
対策としては、おとなしくどっかのサーバに上げるとかが良さそうです。
Xamarin無料化を実感してみた
個人的な話
ぼくはそれなりにWindowsが好きなので、もっといっぱい活用したいといつも思っていました。
つい先日、夏の大型アプデでbashが実装されると聞いたときは本当に嬉しかった。
さらに、Xamarinが無料ときた。
Xamarinなんて使ったことないけど、せっかく無料になったんだし入れてみることにしました。
Xamarinのインストール
ここが公式サイト。
公式サイトからさっとダウンロード・インストールです。
ちなみにぼくはなぜか、セキュリティソフトにダウンロード先が危険なWebページとか言われた。
結構時間かかります。
なんせSDKとか入れるし。
使ってみる
ぼくはMacを持っていないので、AndroidAppにします。
Visual Studioを開いて…
NewProject -> C# -> Android -> BlankApp
んで作成。
ここで気づく。ぼくC#わからない。
まぁいいや。
ソースを見る限り、どうもボタンクリックするとカウントが増えるだけのAppのよう。
そのままビルドボタン押してみました。
ビルドにめちゃくちゃ時間かかります。
ぼくのPCのスペックの問題もあるけど。
5分位放置してたらメニューにAppが追加されているのでそれをタッチして読み込みました。
なるほど。
感想
実はほかにも色々試そうとは思っていましたが、なんせビルドが遅いので諦めました。
AndroidStudioとかそういう系使ったことないので、AndroidAppのビルドってこんな時間かかるんだなあって感じでした。
VisualStudio使い慣れている人にとっては特に嬉しいのではないでしょうか。
補完もバッチリだし、UIもなんかカッコいいし。
どうも調べてみると、UI作成も頑張ってコードを書く感じになるようです。
UIを直感的にいじることはできないので、ぼくみたいなApp制作未経験の人にとってはちょっと難しいかも?
iOSAppも作れるので、Mac持ってる人はWinで作ってMacでビルド、みたいなことができるようです。
XamarinStudioで作れよって思うかもしれませんが、まぁVisualStudioのほうがいいって人も多いですしね。
あと、同じコードでAndroid・iOSのほかにWindowsPhoneのAppも作れるので、オトクな感じもします。
モバイルアプリを作りたい人にとって、Xamarinが無料になったのはとても大きな一歩なのではないでしょか。
なかなか良い感じだな、とぼくは思いました。
ではでは。
追記
指摘を受けて調べたら、デザイナーありました!!!!
ソリューションエクスプローラを右クリック -> 追加 -> 新しい項目
から、Android Layoutを選択して、
ソリューションエクスプローラのResources -> Layoutに入ってる○○.axmlってやつを開くと、デザイナー開くみたいです。
ご指摘ありがとうございました。