Gatsby(TypeScript)×Netlify×Dockerの始め方
収益が出ていないのに、今月もブログのサーバー代を払う僕へ、朗報です。
Gatsby×Netlifyを使って無料で世界中にブログを届ける方法がございます!!
今回はDockerを使いつつ、ブログが配信できるまでの方法をご紹介致します
まずは全体の流れをサラッと確認
- Gatsbyを起動させるためにDocker環境を構築していく
- Gatsby(TypeScript)でサイトを構築
- NetlifyをGitHubと連携させて記事を自動でデプロイ
上記の流れで本記事ではご紹介していきます(・∀・)
完成後のサンプルリポジトリはコチラ
開発環境
- Docker: 20.10.1
- docker-compose: 1.27.4
- Node: 12.17.0
- Gatsby: 2.10.0
ファイル構造の確認
普段Qiitaの記事を見ていて、いつも『ファイル構造知りたいなぁー』とか思っているので(笑)、
完成後のファイル構造を載せておきます。
gatsby-ts-netlify-docker
|- gatsby
|- ...
|- docker-compose.yml
|- Dockerfile
|- README.md
Dockerによる環境構築
Dockerはローカルでのnodeの実行環境として使っていきます!
Dockerfile
先ほどご紹介した場所にDockerfile
を配置し、以下の記述をしていきましょう!
FROM node:12.17.0
RUN mkdir gatsby-ts-netlify-docker
WORKDIR /gatsby-ts-netlify-docker
RUN yarn global add gatsby-cli
FROM
ではイメージの取得、RUN
でgatsby-ts-netlify-docker
フォルダの作成、WORKDIR
で作業ディレクトリの設定をしています。
最後に今回の肝であるgatsby-cli
をglobalにaddしております。
docker-compose.yml
書けたら次にdocker-compose.yml
を紹介した場所に作成して、以下の記述をしていきましょう!
version: '3.8'
services:
gatsby:
build: ./
tty: true
stdin_open: true
volumes:
- ./:/gatsby-ts-netlify-docker
environment:
- NODE_ENV=development
ports:
- 8000:8000
build
でDockerfile
の場所を教える。tty
、stdin_open
でコンテナとホストをつなぐ設定をして、volumes
でhostとコンテナのディレクトリを対応させて、ports
ではローカルでサーバーをたてる際のポートを設定しています。
ビルド&立ち上げ
Dockerfile
とdocker-compose.yml
ファイルが配置できれば、ビルド後、コンテナを立ち上げていきましょう!
$ docker-compose build
$ docker-compose up -d
これでコンテナがビルドされ、立ち上がりました!
Gatsbyを使ってサイトを構築する
今回はTypeScript対応のStarter Libraryを使ってサイトを構築していきます。
Dockerのコンテナ内に入る
まずはコマンドを実行するためにコンテナ内に入りましょう
$ docker-compose exec gatsby bash
これでコンテナ内に入れたと思います!
Starter Libraryの導入
今回僕が導入しようと決めていたLibraryは以下の特徴をもっているものです。
- TypeScriptで書かれている
- 最低限の構成
よって、選ばれたのは、、、
gatsby-starter-typescript-plusでした!
リンクはコチラから
コチラを導入していきます。
gatsby new gatsby https://github.com/resir014/gatsby-starter-typescript-plus
『時間かかるな−』と思った方、通常仕様なので、安心してお待ちください〜(´∀`)
いよいよ表示させていく!
画像にもあるとおり、gatsby develop
でサーバーを起動させていきます。ですがここで注意点が…!
上記のように起動させると、localhostでアクセスしても表示されません。
なので以下のコマンドで起動させていきます。
gatsby develop -H 0.0.0.0
buildが終わって、localhost:8000
へアクセスしてみると…?
このような画面が出ていれば成功です!!!
Netlifyを使って世界中に向けて配信していく
Netlifyのアカウントを持っていない方は、GitHubアカウントがあれば簡単に登録できるので、登録してください。
アカウントを登録するとマイページみたいなところに飛ぶので、以下ボタンを探してください。
ここを押すと、GitHubのリポジトリと連携することが出来ます。
最後はこのような感じで入力してください。
もしdeployに失敗してしまった場合
右上にあるSite settings
を押して、Build & Deploy
を選択、Edit settings
を押して、以下のように記述してください。
サブドメインの変更
今のままでもNetlifyからであればアクセスは可能ですが、まだ外部の方はアクセスすることが出来ません。
そこでサブドメインを設定することによって、外部からでもアクセスが可能となります。
方法は先ほどと同様にSite settings
から、次はDomain management
へ移動、Options
からEdit site name
を選択するとサブドメインの変更が可能となります。
例えばサブドメインをsample
にしたとすると、https://sample.netlify.app
がドメインとなります。
これでどこからでもアクセスが可能となったはずです!!
GitHubを使った変更の自動デプロイ
実は何も設定する必要はございません。笑
GitHubにてDefaultのリモートブランチとなっているところに、Pushするだけ。
これによりNetlify側が発火して、自動でデプロイを行ってくれます!(献身的です)
さいごに
最後まで見て頂きありがとうございました。
スターターライブラリは何を使おうか迷ったり、
ルートディレクトリのGatsby下にファイルを生成しているので、他の方の記事を見ながらやっていると、NetlifyのBuildで少し躓いたりと僕はしていましたが、比較的簡単に導入できるので、皆さんやってみてはいかがでしょうか!
間違っている点やシンプルな感想、よかった点などでもございましたら、お気軽にコメントください(´艸`*)
Author And Source
この問題について(Gatsby(TypeScript)×Netlify×Dockerの始め方), 我々は、より多くの情報をここで見つけました https://qiita.com/Hirochon/items/8d7e4ac51927fbb08828著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .