Skip to content

Commit 4249a24

Browse files
committed
rebuild
1 parent 43be05e commit 4249a24

File tree

8 files changed

+36
-17
lines changed

8 files changed

+36
-17
lines changed

docs/_sources/deploy.rst.txt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -354,7 +354,7 @@ Dockerfileができたらイメージをビルドして実行してみましょ
354354
distrolessベースのDockerイメージの作成
355355
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
356356

357-
distrolessはシェルが入っていおらず、外部からログインされることもなく安全というGoogle製のDockerイメージです。標準Linuxに入っているようなツールも含めて、最小限にカットされています。Node.js、Java、Python、.netなど言語のランタイムだけが入ったバージョン、llvmベースのコンパイラで作成したコードを動かすだけのバージョン、何もないバージョンなど、いくつかのバリエーションが用意されています。今回はNode.jsを使います。
357+
distrolessはシェルが入っておらず、外部からログインされることもなく安全というGoogle製のDockerイメージです。標準Linuxに入っているようなツールも含めて、最小限にカットされています。Node.js、Java、Python、.netなど言語のランタイムだけが入ったバージョン、llvmベースのコンパイラで作成したコードを動かすだけのバージョン、何もないバージョンなど、いくつかのバリエーションが用意されています。今回はNode.jsを使います。
358358

359359
現在、8種類タグが定義されています。latestはLTSが終わるまでは10のままです。\ ``debug``\ がついているものはデバッグ用のシェルが内蔵されています。
360360

@@ -367,7 +367,7 @@ distrolessはシェルが入っていおらず、外部からログインされ
367367
* ``gcr.io/distroless/nodejs:12-debug``
368368
* ``gcr.io/distroless/nodejs:14-debug``
369369

370-
一般的なの\ ``Dockerfile``\ は、\ ``ENTRYPOINT``\ がシェル、\ ``CMD``\ がそのシェルから呼び出されるプログラムです。distrolessはシェルがなく、\ ``ENTRYPOINT``\ にNode.jsが設定されている\ ``CMD``\ にはJavaScriptのスクリプトを設定します。拡張を使わないコードなら簡単に動作します。先ほどの\ ``Dockerfile``\ と、ビルド部分はまったく同じです。
370+
一般的な\ ``Dockerfile``\ は、\ ``ENTRYPOINT``\ がシェル、\ ``CMD``\ がそのシェルから呼び出されるプログラムです。distrolessはシェルがなく、\ ``ENTRYPOINT``\ にNode.jsが設定されているので\ ``CMD``\ にはJavaScriptのスクリプトを設定します。拡張を使わないコードなら簡単に動作します。先ほどの\ ``Dockerfile``\ と、ビルド部分はまったく同じです。
371371

372372
.. code-block:: docker
373373
:caption: Dockerfile
@@ -401,7 +401,7 @@ distrolessはシェルが入っていおらず、外部からログインされ
401401
* CDNやオブジェクトストレージにアップする
402402
* Dockerコンテナとしてデプロイする
403403

404-
このうち、CDNやオブジェクトストレージへのアップロードはそれぞれのサービスごとの作法に従って行ます。ここではDockerコンテナとしてデプロイする方法を紹介します。Dockerコンテナにするメリットはいくつかあります。主にテスト環境の構築画しやすい点です
404+
このうち、CDNやオブジェクトストレージへのアップロードはそれぞれのサービスごとの作法に従って行ます。ここではDockerコンテナとしてデプロイする方法を紹介します。Dockerコンテナにするメリットはいくつかあります。主にテスト環境の構築がしやすい点です
405405

406406
デプロイ用のバックエンドサーバーをDocker化する流れは今後も加速していくでしょう。しかし、フロントエンドが特定のマネージドサービスにアップロードする形態の場合、デプロイ手段がバックエンドと異なるため、別のデプロイ方式を取る必要が出てきます。ちょっとしたステージング環境や、開発環境を構築する際に、フロントエンドもDockerイメージになっていて本番環境のCDNをエミュレートできると、ローカルでもサーバーでも、簡単に一式のサービスが起動できます。PostgreSQLのイメージや、Redisのイメージ、クラウドサービスのエミューレータなどと一緒に、docker-composeで一度に起動するとテストが簡単に行えます。
407407

@@ -435,7 +435,7 @@ Dockerコンテナにする場合、ウェブサーバーのNginxのコンテナ
435435
COPY --from=builder /app/build public
436436
EXPOSE 80
437437
438-
配信用のnginxの設定です。シングルページアプリケーションにとって大切なパートが\ ``try_files``\ です。シングルページアプリケーションでは1つのHTML/JSがあらゆるページを作り上げます。そしてその時にURLを書き換えます。しかし、そこでブラウザリロードをすると、JavaScritpによって作られた仮想的なURLを読みにこうとします。この\ ``try_files``\ を有効にすると、一度アクセスしに行って見つからなかった場合にオプションで設定したファイルを返せます。ここでは\ ``index.html``\ を返すので、そこでReact Routerなどのフロントで動作しているウェブサービスが仕分けを行い、もしどこにもマッチしなければフロント側のRouterがエラーをハンドリングできます。
438+
配信用のnginxの設定です。シングルページアプリケーションにとって大切なパートが\ ``try_files``\ です。シングルページアプリケーションでは1つのHTML/JSがあらゆるページを作り上げます。そしてその時にURLを書き換えます。しかし、そこでブラウザリロードをすると、JavaScriptによって作られた仮想的なURLを読みにこうとします。この\ ``try_files``\ を有効にすると、一度アクセスしに行って見つからなかった場合にオプションで設定したファイルを返せます。ここでは\ ``index.html``\ を返すので、そこでReact Routerなどのフロントで動作しているウェブサービスが仕分けを行い、もしどこにもマッチしなければフロント側のRouterがエラーをハンドリングできます。
439439

440440

441441
.. code-block:: nginx
@@ -597,7 +597,7 @@ minikubeのセットアップが終わったら、kubectlをインストール
597597
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 35m
598598
typescript-kubernetes-service ClusterIP 10.107.196.16 <none> 80/TCP 7m10s
599599
600-
作成したDeployment(複数のコンテナアプリケーションをまとめで管理できるリソース)とService(複数のコンテナアプリケーションをロードバランスしてくれるネットワークリソース)が稼働していることを確認したら、今度は動作を確認します。手元のシェルで \ ``kubectl port-forward``\ を実行し、Kubernetes上のアプリケーションを手元のブラウザで接続できるようにします。
600+
作成したDeployment(複数のコンテナアプリケーションをまとめて管理できるリソース)とService(複数のコンテナアプリケーションをロードバランスしてくれるネットワークリソース)が稼働していることを確認したら、今度は動作を確認します。手元のシェルで \ ``kubectl port-forward``\ を実行し、Kubernetes上のアプリケーションを手元のブラウザで接続できるようにします。
601601

602602
.. code-block:: bash
603603

docs/_sources/module.rst.txt

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -425,7 +425,16 @@ TypeScriptはインポートしたものが型だけの場合に、出力から
425425

426426
インポートだけではなく、\ ``export type { A, B } from "./modules";``\ といった、インポートして即エクスポートする文においては、\ ``export``\ にも利用できます。
427427

428-
現在リリースされているtypescript-eslintにおいても、\ ``import type``\ を使う方が推奨値としてデフォルト設定されています\ [#]_\
428+
現在リリースされているtypescript-eslintの4.0以降においても、\ ``import type``\ を使うことを強制するルールが追加されました\ [#]_\ 。TypeScript 3.7以前ではすべてがエラーになってしまうため、デフォルトでは有効化されていません。
429+
430+
.. code-block:: json
431+
:caption: eslintrc.json
432+
433+
{
434+
"rules": {
435+
"@typescript-eslint/consistent-type-imports": "error"
436+
}
437+
}
429438
430439
.. [#] 他に迷惑な有名なライブラリとしては、Pythonのthisがあります。\ ``import this``\ をするとPythonの設計思想を表す詩が表示されます。
431440
.. [#] https://github.com/typescript-eslint/typescript-eslint/blob/v4.1.1/packages/eslint-plugin/docs/rules/consistent-type-imports.md

docs/_sources/version.rst.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ JavaScriptと比べたTypeScriptの場合、一番有利なのがここですね
153153
ライブラリやフレームワークを浅く使う
154154
------------------------------------------------
155155

156-
ライブラリやフレームワークを使う場合、メジャーな一般的な使い方からなるべく外さないようにします。間違ってもライブラリをラップして完全なオレオレフレームワークを作るとかすると、バージョンアップ時の作業が多くなります。また、メジャーな使い方に近づけておけば、ネットで情報を調べるときにも問題が発見しやすくなりますし、チームメンバーが途中から入ったとしても、実は最初から使い方を知っている、ということも期待できるかもしれません。
156+
ライブラリやフレームワークを使う場合、メジャーな一般的な使い方からなるべく外さないようにします。ライブラリをラップして完全なオレオレフレームワークを作るとかすると、バージョンアップ時の作業が多くなります。また、メジャーな使い方に近づけておけば、ネットで情報を調べるときにも問題が発見しやすくなりますし、チームメンバーが途中から入ったとしても、実は最初から使い方を知っている、ということも期待できるかもしれません。
157157

158158
(参考)式年遷宮
159159
------------------------------
@@ -214,4 +214,4 @@ JavaScriptと比べたTypeScriptの場合、一番有利なのがここですね
214214

215215
常に更新しつづけるシステムであっても、バージョンの更新がおろそかになってしまうことがよくあります。バージョンアップは自社サービスであってもそうでなくても、保守として工数を確保して行う必要があります。影響を考慮してタイミングを見極めて行ったり、セキュリティ上必要であれば他の作業を止めてでも更新してデプロイなどスケジュールにも影響がありえる話になってきます。
216216

217-
適切にコントロールすれば痛みを減らせる分野でもありますので、本性の内容を頭の片隅に置いといてもらえると幸いです
217+
適切にコントロールすれば痛みを減らせる分野でもありますので、本章の内容を頭の片隅に置いといてもらえると幸いです

0 commit comments

Comments
 (0)