2020-01-01から1年間の記事一覧

Realize から Air に移行し、 Go(echo) + Air + docker-compose でホットリロードを利用して開発を行う。

Go

この記事は Go 2 Advent Calendar 2020 の4日目の記事です。 tl;dr Goでホットリロード(a.k.a Live reload)を利用する際には今までは Realize というライブラリを使っている人が多いが、開発が止まっている。 issueも放置され、go modの対応もされておらず、…

階層構造(a.k.a ツリー構造・ディレクトリ構造・フォルダ)をDBでどう設計すべきか

SQL

SQLアンチパターン第2章を自分なりに噛み砕く。 階層構造とは いわゆるTree Strcture(木構造)。 例として上げるのであれば、 Reditのコメント ファイラ(フォルダ・ディレクトリ) . WindowsのExplorer . MacのFinder。 Shell ブログのカテゴリ DOM Tree ここ…

Docker with Multi Stage Buildを利用したNext.jsのDockerイメージを作る

tl;dr Next.jsのSSG(Static Site Generator)を利用したDocker Imageを作る際にMulti Stage BuildでImageを作ると、利用しない場合に比べて453MB変わる Dockerfile 以前とは違い、Production環境でも利用出来るように構築をした。SSGを利用する前提で書いてい…

GitLab CIでTrivyを利用しDocker Imageの脆弱性を検知し、Slackに投稿する

tl;dr Pipeline Schedule を利用し一定周期にscanを実行することで開発を止めずに脆弱性を検知する。 Slackに投稿することで脆弱性の検知をメンバーの目に入れることができる。 Trivyについて 昔書いたのでそちらを参照してください。 teitei-tk.hatenablog.…

Trivy を利用した Docker Container・Image の脆弱性検知入門

tl;dr trivyを利用することで簡単にDocker コンテナの脆弱性の検知をすることが出来る。 OSライブラリからアプリケーション依存のライブラリまで検知が可能 SimpleかつREADMEが豊富で導入の敷居が低い。 CIに組み込むことで DevOps から DevSecOps への移行…

GitHubのProfileページにREADMEを追加した。

tl;dr GitHubのProfileページに自分のREADMEを載せることが出来るようになった。 いつからか分からないが、このようにGitHubのProfileページに自分のREADMEを載せることが出来るようになっている。 いくらか調べてみたが、どれも一次ソースが無いので何時か…

Next.jsの開発環境をDocker with Multi Stage Build

tl;dr Multi Stage Buildを利用することで147MBほど減った。 今回は開発環境のDocker化が目的。production環境ではSSG or SSRだと思うのでまた別の対応が必要になりそう。 Example Project github.com 完成形 gist.github.com Multi Stage Buildを利用しない…

Docker with GoのMulti Stage Buildで"no such file or directory"と出てハマった話

対象のDockerfile。特に特殊なことは行っていない素朴なDockerfile。 FROM golang:1.14.4 as builder WORKDIR /app COPY . . RUN go mod download RUN go build path/to/main.go FROM alpine RUN apk add --no-cache ca-certificates COPY --from=builder /a…

ポートフォリオサイトをGatsby.jsからNext.jsに移行した。

PR github.com 動機 Next.jsが今後伸びていくと踏んで今のうちに技術投資をしておきたいと思い移行をしました。 Next.jsにはstatic HTML exportという機能があり、Gatsby.jsと同じ様に静的サイトを作れるのでキャッチアップにちょうど良かったという事情もあ…

Next.jsでfaviconを設定する

PR github.com Projectの構成はこのような形 $ tree src/pages public src/pages ├── _app.tsx ├── _document.tsx └── index.tsx public └── static └── favicon ├── android-chrome-192x192.png ├── android-chrome-512x512.png ├── apple-touch-icon.png ├…

Next.jsでSVG画像をReact Componentとして描画する

@svgr/webpackを利用する。 react-svgr.com npm install @svgr/webpack --save-dev # or use yarn yarn add @svgr/webpack --dev next.config.js module.exports = { webpack(config) { config.module.rules.push({ test: /\.svg$/, issuer: { test: /\.(js|…

TerraformでAWS LambdaLayer with Python を利用する

ほぼclassmethodさんの記事通りですが ソースコード github.com $ tree . ├── README.md ├── build-layer.sh ├── iam.tf ├── lambda │ ├── function.zip │ └── lib.zip ├── lambda.tf ├── provider.tf ├── requirements.txt ├── src │ └── index.py ├── terr…

Markdown文書で画像の表示にURLを使わず埋め込む

今回から技術記事はHatenaBlogに書いていこうと思います。 忘備録 Markdownに画像を表示する場合、どうしていますか。おそらくimgurやGitHubなどに画像をアップロードしてURLを参照していると思います。 imgur.com ![airplane](https://homepages.cae.wisc.e…