映画「バースデーワンダーランド」考察 – テクノロジーの発展したインターネット時代での生き方

クレヨンしんちゃんの映画の中でも「オトナ帝国の逆襲」は好きな作品の一つだ(おそらく多くの人がそうだろうと思う)。敵役である「イエスタディ・ワンスモア」の「汚い金と燃えないごみだけあふれる21世紀がいやだから時を止める」という思想はとても訴えかけるものがあるし、ヒロシの一生をダイジェストで描いたシーンは確実に涙が流れる。平成に生まれていたからこの映画は耐えれたが、自分が昭和に生まれていたら耐えられなかっただろう。 そんな作品を作った原恵一監督が新作を作るという情報を友人から聞いた。ゴールデンウィークも最終日、特に外に出なかったので最後ぐらいは外に出ようと朝10:30上映にもかかわらず起床し、TOHOシネマズ日比谷へと向かった。

AWS ECRを使ってみる

毎回DockerfileをGithubから取ってきてbuildしてrunするのはやっぱりイケけてないのでAWSのコンテナレジストリことECRを使ってみます。 マネジメントコンソールからECRのページに行き、[リポジトリの作成]を押します。 リポジトリ名は***.amazonaws.com/<名前空間>/<リポジトリ名>みたいな感じでつけれます。名前空間はなくても大丈夫なようです。 リポジトリを作成できたら、イメージをpushするためにアカウント認証を行いましょう。awsコマンドはbrew install awscliなどでインストールします。認証をしていない場合はaws configureをしてください。 以下のコマンドでdocker loginできます $(aws ecr get-login –no-include-email –region ap-northeast-1) 外側をかこっている$()をつけないとただdocker loginのコマンドが表示されるだけなので必ずつけて実行しましょう。リージョンはECRのリポジトリを作ったとこにします。 適当なDockerfileを用意し、ECRのリポジトリにタグをつけてdocker buildを行います。 cd <path-to-dockerfile>/docker build -t ***.amazonaws.com/garicchi/test-1 ./ docker pushを行います。 docker push ***.amazonaws.com/garicchi/test-1 無事pushできました。 せっかくなのでpullしてみます。 docker pull ****.amazonaws.com/garicchi/test-1 無事pullできました。 docker build時やpush時に長いリポジトリ名を書かなきゃなのは辛いですが普通に簡単に使うことができました。 docker-composeではどうやってpullするのか気になったので調べてみると、aws ecr docker-loginをちゃんとしておくとあとはdocker-composeのimage:タグにレジストリのURLつきでイメージ名を書くと、pullしてくれるようです。 AWS ECR と docker-compose – Qiita https://qiita.com/iwai/items/ec4103890b983039163b

Macをサーバーにしてjenkins jnlpデーモンを起動させたとき、謎にterminatedになる現象

現象 Macをビルドサーバーとして、Jenkinsのjnlp slaveを起動していたのですが10数分〜1時間ぐらいで接続が切れる。 jnlp slaveはnohupとlaunchdでの起動試したがどちらも接続が切れる jnlp slaveをフォアグラウンドで起動していると接続は切れない masterのログをみても以下のようにしかでない コネクションが切断されました。 slave側のログをみても、「terminated」としか書いてない。 psコマンドでプロセスを見るとプロセスは生きている 原因 ssh接続を切っている間に、Macが自動スリープしていた Macで画面共有を有効化しているとき、ssh接続をするとスリープモードから自動復旧するらしく、利用者側からはスリープしてるようにみえなかった Macがスリープするので、プロセスも一時停止する→jnlp接続が切れる 対策 Preferences->省電力->ディスプレイがオフの時にコンピューターをスリープしない にチェックをいれるだけ 感想 1週間ぐらい悩みました。つらい

Dockerコンテナ内でssh keyを使う

Dockerコンテナでビルドパイプラインなどを作っていると、コンテナ内からgit fetchしたくなります。しかしsshでgit fetchしようとすると、コンテナ内との鍵の管理がめんどうになります。 コンテナ内でssh用の鍵を使う方法としては コンテナ用の鍵を生成してbuild時にコピーする ホストの.sshをコンテナにマウントする の2パターンが考えられます。 1の場合、ホストだけでなくコンテナ用の鍵をいちいち生成しなくてはならず、またGithubなどのdeploykeyに登録をしないといけなくなります。さらにDockerfileがgit管理されている環境ではコンテナ用のprivate keyをリポジトリにコミットしてしまう恐れもあります。 したがって2の場合を考えて行きたいのですが、普通に.sshをコンテナにマウントすると、.ssh/configのownerがホスト側のユーザーになってしまい、コンテナからsshしようとするとpermission errorになってしまいます。 解決策としては、マウント先は一時ファイルに.sshをマウントしておき、コンテナ実行時にコンテナのホームディレクトリにコピーすることで.sshのpermissionが正しくなります。 コンテナ実行時に.sshをコピーするために、ENTRYPOINTは以下のようなシェルスクリプトにします。 あとはdocker run時に.sshを一時ファイルへマウントすればOKです docker run -v /home/user/.ssh:/tmp/.ssh