プログラミングと旅と映画の日々

普段はスマホ決済サービスのバッグエンドを担当しているエンジニアです。プログラミングと趣味の映画、株、時々うどんに関してブログを書いていこうと思います。海外ドラマ、クロスバイクも好きです。

【映画】「ボヘミアンラプソディー」を観てきました【感想】

Queenのフレディーの映画「ボヘミアンラプソディー」の感想

 

f:id:takanori5:20181209143519j:plain

ボヘミアンラプソディー

Queenを知らない若い世代にも人気で話題の映画

ボヘミアンラプソディー」を観てきました。

ボヘミアンラプソディーのあらすじ

世界的人気ロックバンド「クイーン」のボーカルで、1991年に45歳の若さでこの世を去ったフレディ・マーキュリーを描いた伝記ドラマ。クイーンの現メンバーであるブライアン・メイロジャー・テイラーが音楽総指揮を手がけ、劇中の楽曲には主にフレディ自身の歌声を使用。「ボヘミアン・ラプソディ」「ウィ・ウィル・ロック・ユー」といった名曲誕生の瞬間や、20世紀最大のチャリティコンサート「ライブ・エイド」での圧巻のパフォーマンスといった音楽史に残る伝説の数々を再現するとともに、華やかな活躍の裏にあった知られざるストーリーを描き出していく。

 

正直CMをみた限りではQueen興味ないし、みなくていいかな。。

って思っていました。

ただあまりにも評判がいいと耳にするので

週末にトーホーシネマズ六本木までみに行ってきました。

 

ボヘミアンラプソディーの感想

まず、結論からいうと最高の映画でした。

ライブをみているような興奮もありながら、フレディーの物語に感動して泣けました。

お父さんが、

フレディーに昔から「善き考え、善き言葉、善き行い」をしろと執拗に言っていました。

フレディーはそれを言われて「それで良いことあったの?」と

舐めきった態度をとります。

しかし、Queenとして売れて、最後には世界最大のチャリティーライブイベントである

ライブエイドに出演します。

そのことを父に伝え、「ライブエイドの出演者は誰も出演料を取らない。善き考え、善き言葉、善き行いだ」

と父に良い放ち

抱きしめ合う姿が最高でした。

 

何よりライブの描写がかっこよすぎる映画でした。

彼がいきている内に彼の生ライブがみたかった...

 

takanori5.hatenablog.com

 

takanori5.hatenablog.com

 

【Docker】AWSにDocker hostを作成する方法【入門】

AWSにDocker hostを作成する方法

AWSにDocker hostを作成し、管理する方法についてみていきます!

AWSを操作するため、AWSの認証情報を取得

まずはAWSのウェブ画面にログインします。

左上のサービス>セキュリティ、 アイデンティティコンプライアンス>I AM
をクリックします。
f:id:takanori5:20181125130117p:plain
左のメニューからユーザーを選択
f:id:takanori5:20181125125925p:plain
ユーザーを追加をクリック
f:id:takanori5:20181125130200p:plain
ここで任意のユーザー名を入れ、プログラムによるアクセスにチェックを入れます!
そして次のステップへ!!
f:id:takanori5:20181125130342p:plain
既存のポリシーを直接アタッチをクリック!
Administrator Accessをチェックして
次のステップへをクリック!
f:id:takanori5:20181125130524p:plain
確認して問題なければそのままユーザーを作成をクリックしましょう!
f:id:takanori5:20181125130701p:plain
ユーザーが作成できました!
f:id:takanori5:20181125130759p:plain
アクセスキーはAWSにアクセスする際の鍵となります。
それではこれらのキーをPCに設定しましょう!

AWSの認証情報をPCに設定

キー情報はdocker-machineコマンドでも設定できます。
ただ、毎回入力するのはめんどいのでhomeディレクトリ配下にAWSディレクトリを用意してここに設定を入れておきます。

$ mkdir ~/.aws
$ vim ~/.aws/credencial
$ cat ~/.aws/credencial
[default]
aws_access_key_id = XXX
aws_secret_access_key = XXX

XXXは先ほどのAWSの画面上に表示された値を入れましょう!

AWS EC2インスタンスをdocker-machineで作成

まずはウェブUI上でインスタンスが存在していないことを確認します。
f:id:takanori5:20181125132015p:plain
ではコマンドからEC2インスタンスを作成してみます!

$ docker-machine create --driver amazonec2 --amazonec2-open-port 8000 --amazonec2-region ap-northeast-1 aws-sandbox

起動したインスタンスの8000ポートを外部に公開します。
regionには東京リージョンを指定し
hostにはaws-sandboxという名前を指定しています。
では実行します。

$ docker-machine create --driver amazonec2 --amazonec2-open-port 8000 --amazonec2-region ap-northeast-1 aws-sandbox
Running pre-create checks...
Creating machine...
(aws-sandbox) Launching instance...
Waiting for machine to be running, this may take a few minutes...
Detecting operating system of created instance...
Waiting for SSH to be available...
Detecting the provisioner...
Provisioning with ubuntu(systemd)...
Installing Docker...
Copying certs to the local machine directory...
Copying certs to the remote machine...
Setting Docker configuration on the remote daemon...
Checking connection to Docker...
Docker is up and running!
To see how to connect your Docker Client to the Docker Engine running on this virtual machine, run: docker-machine env aws-sandbox

インスタンスが作成されました!
ではコンテナを起動してみましょう
まず操作対象のhostを指定します。
docker-machineで起動したhostを指定するときと同じで、以下のコマンドでhostを指定します。

$ eval $(docker-machine env aws-sandbox)

では、docker run コマンドでコンテナを起動します。
hello-worldコンテナでやってみます。

$ docker run -d -p 8000:80 --name webserver kitematic/hello-world-nginx
Unable to find image 'kitematic/hello-world-nginx:latest' locally
latest: Pulling from kitematic/hello-world-nginx
77c6c00e8b61: Pull complete
9b55a9cb10b3: Pull complete
e6cdd97ba74d: Pull complete
7fecf1e9de6b: Pull complete
6b75f22d7bea: Pull complete
e8e00fb8479f: Pull complete
69fad424364c: Pull complete
b3ba6e76b671: Pull complete
a956773dd508: Pull complete
26d2b0603932: Pull complete
3cdbb221209e: Pull complete
a3ed95caeb02: Pull complete
Digest: sha256:ec0ca6dcb034916784c988b4f2432716e2e92b995ac606e080c7a54b52b87066
Status: Downloaded newer image for kitematic/hello-world-nginx:latest
e6def26304053e18a4db9eb8c41343b33281264960d6ea9b72b9fdeec5f1ad94

それではipを確認して、ブラウザからみてみましょう!

 docker-machine ip aws-sandbox
13.231.242.178

ブラウザから確認すると正常にコンテナが起動していますね!
f:id:takanori5:20181125133446p:plain
コンテナを止めちゃいましょう

$ docker-machine stop aws-sandbox
Stopping "aws-sandbox"...


Machine "aws-sandbox" was stopped.

最後にこのコンテナを削除します!

$ docker-machine rm aws-sandbox
About to remove aws-sandbox
WARNING: This action will delete both local reference and remote instance.
Are you sure? (y/n): y
Successfully removed aws-sandbox

【Docker】Docker machineを使用したDocker hostの作成方法【入門】

f:id:takanori5:20181028132956p:plain

Docker machineを使用したDocker hostの作成

docker hostの確認コマンド

$ docker-machine ls

試しに実行すると起動中のhostがないことがわかります。

$ docker-machine ls
NAME   ACTIVE   DRIVER   STATE   URL   SWARM   DOCKER   ERRORS

docker hostの起動コマンド

以下は仮想化のdriverにvirtualboxを使用してdefaultという名前でhostを作成

$ docker-machine create --driver virtualbox default

コマンドを実行して見ます。

hodzumitakanori-no-MacBook-Air:DockerAutomatedBuild hodzumitakanori$ docker-machine create --driver virtualbox default
Creating CA: /Users/hodzumitakanori/.docker/machine/certs/ca.pem
Creating client certificate: /Users/hodzumitakanori/.docker/machine/certs/cert.pem
Running pre-create checks...
(default) Image cache directory does not exist, creating it at /Users/hodzumitakanori/.docker/machine/cache...
(default) No default Boot2Docker ISO found locally, downloading the latest release...
(default) Latest release for github.com/boot2docker/boot2docker is v18.09.0
(default) Downloading /Users/hodzumitakanori/.docker/machine/cache/boot2docker.iso from https://github.com/boot2docker/boot2docker/releases/download/v18.09.0/boot2docker.iso...


(default) 0%....10%....20%....30%....40%....50%....60%....70%....80%....90%....100%
Creating machine...
(default) Unable to get the local Boot2Docker ISO version:  Did not find prefix "-v" in version string
(default) Default Boot2Docker ISO is out-of-date, downloading the latest release...
(default) Latest release for github.com/boot2docker/boot2docker is v18.09.0
(default) Downloading /Users/hodzumitakanori/.docker/machine/cache/boot2docker.iso from https://github.com/boot2docker/boot2docker/releases/download/v18.09.0/boot2docker.iso...

(default) 0%....10%....20%....30%....40%....50%....60%....70%....80%....90%....100%
(default) Copying /Users/hodzumitakanori/.docker/machine/cache/boot2docker.iso to /Users/hodzumitakanori/.docker/machine/machines/default/boot2docker.iso...
(default) Creating VirtualBox VM...
(default) Creating SSH key...
(default) Starting the VM...
(default) Check network to re-create if needed...
(default) Found a new host-only adapter: "vboxnet0"
(default) Waiting for an IP...

Waiting for machine to be running, this may take a few minutes...
Detecting operating system of created instance...
Waiting for SSH to be available...
Detecting the provisioner...
Provisioning with boot2docker...
Copying certs to the local machine directory...
Copying certs to the remote machine...
Setting Docker configuration on the remote daemon...
Checking connection to Docker...
Docker is up and running!
To see how to connect your Docker Client to the Docker Engine running on this virtual machine, run: docker-machine env default

起動確認

$ docker-machine ls
NAME      ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER     ERRORS
default   -        virtualbox   Running   tcp://192.168.99.100:2376           v18.09.0

defaultの名前でdocker hostが起動しました!

hostが起動したので、このhostに接続する方法を見ていきます!
こちらのコマンドで、捜査対象のdocker hostに接続するための設定が出力されます。

$ docker-machine env default

それでは実行してみます。
下に記載のコマンド(eval $(docker-machine env default))を記載することで、まとめて環境変数を設定できます。

$ docker-machine env default
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="/Users/hodzumitakanori/.docker/machine/machines/default"
export DOCKER_MACHINE_NAME="default"
# Run this command to configure your shell:
# eval $(docker-machine env default)

やってみます。

$ eval $(docker-machine env default)

これで設定できました。簡単ですね。

では、このhost上でhelloworldコンテナを起動してみましょう!!!

docker hostでhellowoldコンテナを起動

$ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
d1725b59e92d: Pull complete
Digest: sha256:0add3ace90ecb4adbf7777e9aacf18357296e799f81cabc9fde470971e499788
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:

 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

実行できました!!
ではdefaultのhostにssh接続して、このhostでhello worldが実行されたことを
確認してみます。

$ docker-machine ssh default
   ( '>')
  /) TC (\   Core is distributed with ABSOLUTELY NO WARRANTY.
 (/-_--_-\)           www.tinycorelinux.net

docker ps

psコマンドでprocessを確認すると
hello worldgが実行されたことがわかります。

docker@default:~$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
8741da52aca1        hello-world         "/hello"            36 seconds ago      Exited (0) 35 seconds ago                       amazing_keller
docker@default:~$

docker hostとの接続を解除

defaultとの接続を解除しましょう!
先ほどコマンドで設定した環境変数を削除すればOKです。

$ docker-machine env -u
unset DOCKER_TLS_VERIFY
unset DOCKER_HOST
unset DOCKER_CERT_PATH
unset DOCKER_MACHINE_NAME
# Run this command to configure your shell:
# eval $(docker-machine env -u)

【Docker】githubへのビルドコンテキストのpushに伴うAutomated buildを実践【入門】

githubへのビルドコンテキストのpushに伴うAutomated buildを実践してみる

f:id:takanori5:20181028132956p:plain

Automated buildの設定方法

前回の記事
takanori5.hatenablog.com

Automated buildを実践

前回の設定に基づき、githubにビルドコンテキストをpush
それに伴うAutomated buildを見ていきます。

githubへのビルドコンテキストのpush

まずは空のリポジトリにDockerfileを作成していきます。
適当なDockerfileを作成

$ cat Dockerfile
FROM dockersamples/static-site
ENV AUTHOR="takanori5"

これをgithubにpush して見ます。

$ git push origin HEAD
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 270 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote:
remote: Create a pull request for 'master' on GitHub by visiting:
remote:      https://github.com/takanorihozumi/DockerAutomatedBuild/pull/new/master
remote:
To https://github.com/takanorihozumi/DockerAutomatedBuild.git
 * [new branch]      HEAD -> master

すると、もともと以下のような状態だったDockerhubのリポジトリ
f:id:takanori5:20181111141916p:plain
以下のように追加されていることがわかります。
まだステータスがQueuedですね
f:id:takanori5:20181111142033p:plain
しばらく待ちステータスがSuccessとなればビルド完了です。
f:id:takanori5:20181111142213p:plain

試しにDockerhubからイメージを取得して見ます。
取得できました!

 docker pull takanori5/dockerautomatedbuild
Using default tag: latest
latest: Pulling from takanori5/dockerautomatedbuild
fdd5d7827f33: Already exists
a3ed95caeb02: Already exists
716f7a5f3082: Already exists
7b10f03a0309: Already exists
aff3ab7e9c39: Already exists
Digest: sha256:29e35b7bdda590d8a3e6f78e22871e5aff1f90ce5bd6e52de2497313bb574617
Status: Downloaded newer image for takanori5/dockerautomatedbuild:latest

【Docker】Automated Build(自動build)の設定方法【入門】

DockerのAutomated Build(自動build)の設定方法

f:id:takanori5:20181028132956p:plain
Automated Build(自動build)を設定していきます。

まずはgithubやbitbucketなどのホスティングサービスとリンク設定を行います。

githubとdockerhubをリンクする方法

まずはdocker hubにいきます
右上の
Create>Create Automated buildを選択します。
f:id:takanori5:20181111131155p:plain

クリックすると、githubとリンクしていない場合は
以下のような画面が出ます。
f:id:takanori5:20181111131329p:plain

ではLink accountsをクリックしましょう!!
f:id:takanori5:20181111131639p:plain

githubとリンクしたい場合はlink githubをクリック!!
f:id:takanori5:20181111131807p:plain
2つの選択肢が出現しました。

上はpublicとprivate両方のリポジトリに権限を与えるもの
下はpublicのみ参照権限を与えるものです。
特に理由がないなら推奨されている上の連携方法を選びましょう。
githubリポジトリを持っていない場合事前に用意しておきましょう!)
f:id:takanori5:20181111132039p:plain
上の画面にてAuthorize dockerをクリックすれば連携完了となります。
f:id:takanori5:20181111132259p:plain
簡単ですね!

続いてautomated buildの設定を行います。

Dockerhubのautomated buildの設定方法

右上のCreate>Create automated buildをクリックします
すると以下の画面が出ます。
f:id:takanori5:20181111133138p:plain

create auto build githubをクリック
するとgithubリポジトリが連携されており一覧表示されていますね。
f:id:takanori5:20181111133326p:plain
設定したりリポジトリをクリック!
f:id:takanori5:20181111133422p:plain

ここで設定を行うことで
設定したリポジトリに変更があった際にイメージを自動ビルドします。
入力値はとりあえずデフォルト値のままCreateをクリックします。

リポジトリが作成され、設定内容が表示されました。
簡単ですね。
f:id:takanori5:20181111135444p:plain

webhookタブで設定を行うと、ビルドが行われた際に
設定した先に通知を行うことも可能です。
いいですね!
f:id:takanori5:20181111135721p:plain

【Docker】Automated Build(自動build)とは【入門】

DockerのAutomated Buildとは

f:id:takanori5:20181028132956p:plain

Automated Build

githubなどのホスティングサービスでビルドコンテキストを管理して
リポジトリ上のビルドコンテキスト(Dockerfileやその他ビルドに必要なファイル群)が変更された際に
自動でビルドを実行する仕組みのこと。

f:id:takanori5:20181111125508p:plain