lycheejam's tech log

チラ裏のメモ帳 | プログラミングは苦手、インフラが得意なつもり。

Docker ComposeでDB構築(MySQL 5.7)

概要 先日から続けているPHPの実行環境の下りでCRUDを実行したいのでDBサーバを構築します。 MySQLは5.7を使用してdocker-compose upでテーブル作成のSQLスクリプト流し込みまで行います。 DockerのMySQLイメージを使用したDBサーバの構築は過去にASP.NET Co…

VSCode + Docker + XdebugでPHPのデバッグ環境を構築

概要 前回、Docker(nginx + PHP-FPM)を使ってPHPの実行環境を構築しました。 基本構文を覚えたばかりなのでコード毎に動作を追いたいと思った次第です。 Docker(nginx + PHP-FPM + Xdebug)+ VisualStudio Codeでデバッグが行える環境を構築します。 前回…

.gitignore_globalの作成(.gitignoreのテンプレートサイト紹介)

Git

概要 Git管理の必要ないファイルやディレクトリが、作成される場合があります。 Macであれば.DS_Storeであったり、WindowsであればThumbs.db等です。 また、VSCodeを使っていると.vscodeなどのディレクトリもGitで管理する必要がないため除外したい。 Visual…

Docker Composeを使ってnginxとPHP-FPMでPHPの実行環境を構築する

概要 PHPを触るにあたりローカルでPHPを使って開発できる環境が欲しかったのでDocker Composeを使ってnginx + PHP-FPMで実行環境を構築しました。 PHPやPHP-FPM、Dockerの知識不足で構築に結構時間がかかってしまったので忘れないよう記事にします。 PHPのロ…

【実験】C# HttpClientのソケット大量消費の回避

概要 ちょっとしたものを作っている過程でHttpClientを使用した場合のソケット数について気になることがあったので netstatコマンドで計測しながら下記の2パターン実験しました。 公式ドキュメントに記載のあるSocketExceptionエラーを回避する方法ですが自…

AWS CodeBuildのビルド結果をLambdaを使ってLINEへ通知する

概要 タイトルの通りAWS CodeBuildのビルドステータスをCloudWatchと使って監視し イベントを検知したらLambdaを起動し自身のLINEへビルド結果を通知します。 トークに返信して自動で再ビルド実行とかは組み込んでません。純粋にビルド結果の通知です。 世間…

AWS CodeBuildでGitHub Webhookイベントをフィルタリングする

概要 CodeBuildでGitHubのWebhookイベントをフィルタリングします。 少し前まではCodeBuildのbranch filterで「masterブランチだけ検知する」と言ったことができてたんですが 2019/2/8のアップデートでbranch filterが廃止され代替としてWebhook filterが実…

.NET CoreプロジェクトのC#言語バージョンを変更する

概要 Mac環境の.NET CoreプロジェクトでMainメソッドにasync Taskを使おうとしたらC#の言語バージョンをC# 7.2に上げなさいよって怒られたのでバージョン変更方法のメモです。 VisualStudio for MacからC#の言語バージョンを変更します。 目次 概要 目次 参…

VuePressでAlgolia DocSearchを有効化する(申請パターン)

概要 VuePressでAlgolia DocSearchでの検索を有効にします。 VuePressの標準機能でAlgoliaの検索機能は組み込まれているので有効化すること自体は簡単です。 しかし、AlgoliaとDocSearchが何者なのかを理解していなかったために時間がかかったので備忘録とし…

Algolia DocSearch-Scraperでクロールを実行する(INDEXを作成する)

概要 Algolia DocSearch-Scraperをローカルで動かして、クロールを実行してINDEXを作成します。 Algoliaを使って検索機能を実装するにはINDEXを登録する必要があります。 そこで、Algoliaでは技術文書向けに最適化されたクローラであるDocSearchが提供されて…

GitHub + AWS CodePipeline|Build|Deployで自動ビルド・デプロイ環境の構築

概要 ASP.NET CoreアプリをAWS LightsailでホスティングされているCentOS 7のサーバで公開するにあたり自動ビルド・自動デプロイ環境を構築しました。 所謂、CI環境と言うものですが自動テストは組み込んでいないためタイトルを「自動ビルド・デプロイ環境の…

VuePressに GoogleSearchConsole のメタタグを埋め込む

概要 ブログがどれだけ人に見られてるかってのは更新するモチベーションの1つです。 そこで、VuePress で作成したサイトに GoogleSearchConsole のメタタグを追加してアクセス解析を閲覧できるようにします。 GoogleAnalytics の場合は標準でトラッキングコ…

ASP.NET Core MVC スキャフォールドでコードを自動生成する

概要 ASP.NET Core MVC で認証付きプロジェクトを作成した際に ASP.NET Core Identity の認証関連をカスタマイズしたいことが多々あります。 ASP.NET Core MVC のテンプレートでは ASP.NET Core Identity のコードが生成されておらずカスタマイズできません…

VuePressのLastUpdated表示フォーマットを変更する。

概要 VuePressで表示可能な最終更新日( LastUpdated )の表示フォーマットを変更します。 デフォルトではMM/DD/YYYY hh:mm:ssとなっていますが日本では馴染みの無いフォーマットなのでYYYY/MM/DD hh:mm:ssのフォーマットに変更します。 VuePress 0.14.10を…

VuePressを起動するとres.getHeader is not a functionエラーが発生する。

概要 VuePress 0.14.10をインストール後、開発環境でローカルサーバを起動しブラウザでアクセスするとエラーが発生する問題が発生しています。 件のエラーはこちらのISSUEで確認できます。 全て解決法はISSUEに書いてあるのでISSUEを見たほうが早い説ありま…

git mvでディレクトリ(フォルダ)をリネームする際にエラーが発生する

Git

概要 git管理下のディレクトリをリネームする際にエラーが発生したのでそのメモです。 git管理下のディレクトリをリネームする際、mvコマンドやGUI操作でのリネームではgitに変更が反映されず困っていました。 調べてみるとgit mvコマンドなるものが存在し実…

CodeDeployを使用したデプロイがタイムアウトとなり失敗する

概要 CodePipelineを使用してGitHub + CodeBuild + CodeDeployを使用してオンプレミスな環境にASP.NET Coreアプリを自動ビルド・デプロイする環境を構築していました。 構築の過程でデプロイの際にタイムアウトとなりエラーログも何も出力されない状況となり…

ASP.NET CoreアプリをCentOSでサービス登録し自動起動を設定する

概要 AWS LightsailでホスティングされているCentOS 7のサーバで ASP.NET Coreアプリケーションを公開するにあたりサービス化して自動起動設定を行ったのでそのメモです。 手順的には公式ドキュメント通りなので公式ドキュメント見たほうが早い説あります。 …

AWS Lightsail(CentOS 7)にMySQL 5.7の構築

概要 ASP.NET CoreアプリをAWS LightsailのCentOS 7環境で公開するにあたりDBにMySQLを使用しているためMySQL環境を構築した手順メモです。 今回インストールするのはMySQL5.7です。 構成は下記の様な形です。 ASP.NET Coreアプリ + Nginxの構成部分はすでに…

ASP.NET Core MVCアプリをAWS Lightsail(CentOS 7)で公開する。

概要 ASP.NET Core MVCで作成したToDoアプリをAWS LightsailのCentOS環境を使用して公開したのでそのメモです。 (Lightsailと言っていますが普通のCentOSを使用したVPS環境です。) 構成としてはNginxでリバースプロキシ + ASP.NET Coreアプリ + MySQLです…

ASP.NET CoreでAPIキーなどの秘匿情報をsecret.jsonを使用して秘匿する

概要 ASP.NET Core MVCプロジェクトでこちらの公式ドキュメントのコードのまま実装しています。 しかし、このままではappsettings.jsonをgit commitする際に除外するか書き換えるなどの面倒な方法をとっていました。 appsettings.jsonと同じ使い方のできるse…

EntityFramework CoreでDBの状態を過去のマイグレーションに戻す。

概要 EntityFramework Coreで不要なテーブルを作成してしまったり変更を加えてしまったりしてしまい 元に戻す必要があったため、その手順メモです。 目次 概要 目次 環境 前提 参考サイト様 手順 migration履歴を確認 DBの状態を指定した時点に戻す 不要なMi…

Dockerで稼働するMySQLの文字コードを設定する話

概要 ASP.NET Core MVCを使用した簡単なことをTwitterにつぶやくモノを作っていて 開発環境のDBにDocker上で稼働するMySQLを使っています。 つぶやく際にTweet内容をDBに登録しており文字化けが発生してしまったのでMySQLの文字コードを変更して対応したメモ…

.NET Coreのコミュニティロゴが素晴らしかったので紹介したい

概要 技術ネタではないですが、ブログ用のアイキャッチ画像を探してたら見つけた .NET Core関連のロゴ(非公式)がめちゃくちゃよかったので紹介したいなと思った次第です。 ライセンスもちゃんと明示されていて使いやすいですよね。 目次 概要 目次 ロゴに…

EF CoreとMySQLでField 'Id' doesn't have a default valueエラーが発生

概要 ASP.NET CoreでDocker上で稼働しているMySQLをいろいろこねくり回してるんですが タイトルのエラーが出て辛かったので対応手順のメモです。 また、本事象の回避自体はできましたが根本原因は別にありました。 本事象回避後、前回の記事のエラーが発生し…

EF CoreとMySQLでDuplicate entry '0' for key 'PRIMARY'エラーが発生

概要 .NET CoreでDocker上で稼働しているMySQLをいろいろこねくり回してるんですが タイトルのエラーが出て辛かったので対応手順のメモです。 関連ツイート INSERT INTO `AspNetUserClaims` (`ClaimType`, `ClaimValue`, `UserId`)VALUES (@p0, @p1, @p2);SE…

ASP.NET CoreからMySQLへCRUDするとNo coercion operator is defined between types 'System.Int16' and 'System.Boolean'エラーが発生する

概要 ASP.NET Core MVCテンプレートとMySQLの組み合わせで操作を実行すると何かしらDBに操作(CRUD)を加えた段階で No coercion operator is defined between types 'System.Int16' and 'System.Boolean'と言うエラーが発生しました。 その回避策のメモです…

Mac環境のASP.NET Core MVCでdocker上のMySQLを使用する

概要 MacでのASP.NET Core MVC開発環境構築のためDockerで稼働させたMySQLに接続し開発を行います。 Macからdotnet cliのテンプレートを使用してプロジェクトを作成するとデフォルトでSQLiteがプロジェクトに内包される形で作成されます。 諸事情があり当初W…

ASP.NET Core IdentityでTwitter認証をするとAn unhandled exception occurred while processing the requestが発生する

概要 ASP.NET Core Identiyを使ったTwitter認証の実装で認証を実施する際にエラーが発生して詰まったのでメモ 本記事ではエラーの回避策のみ言及し、Twitter Developersでのアプリ申請には言及しない。 目次 概要 目次 環境 参考サイト様 成果物 前提(使用…

dotnet cliのMVCテンプレートの認証オプション

概要 dotnet cliのMVCテンプレートで認証付き.Net Core MVCのテンプレートを作成したのでメモ OSX(Mac)環境でASP.NET Coreの開発をしてるんですが Windows版のVisual Studio 2017では認証付きテンプレートが作成できるのに Visual Studio for Macやdotnet …