tech.guitarrapc.cóm

Technical updates

Docker

Docker DesktopリソースセーバーとWSL2のautoMemoryReclaim=gradualは併用できない

WSL2は長年メモリリークがありましたが、.wslconfigのautoMemoryReclaim1を設定することでキャッシュされたメモリを自動解放できます。ただ、autoMemoryReclaim=gradualにしているとDocker DesktopのResource Saver(リソースセーバー)と併用できないようでト…

dotnet publishでコンテナイメージを作成する

.NETは組み込みコンテナサポートを持っておりdotnet publishでコンテナイメージを作成できます。このようなDockerfileなしのコンテナ作成はJibやBuildpacksを思い起こしますが、dotnet publishという標準コマンドで提供しているのが大きな違いです。 Dockerf…

.NETのコンテナイメージをマルチプラットフォーム対応する

C#をLinuxやコンテナで動かせるようになって久しくC#をコンテナで実行している人も多いでしょう。 C#はlinuxのamd64(x86_64)とarm64の両方に対応しているので、ライブラリや実装コードに気を払えば「同一コードベースでマルチプラットフォーム動作」が可能で…

Pulumi DockerBuildを使ったマルチプラットフォームDocker Image作成

Pulumiでマルチプラットフォーム対応のDocker Imageを作成する時はdocker-buildパッケージを使うのがオススメです。ただ注意点として、1年余りプレビュー状態が続いており、これまでのdockerパッケージから見ると挙動の違いに注意が必要です。 今回はPulumi…

TargetFrameworksを指定しつつDockerビルドしたい

TargetFrameworksを用いると複数のフレームワークに対応したライブラリを作成できます。今回は、このTargetFrameworksを指定しつつDockerビルドする方法を紹介します。 なお、コンテナで複数ランタイムを持つ意義はほぼないので、この記事はただの興味本位で…

ローカルのRedis ClusterにVisual Studioでデバッグ実行する

以前の記事で、Docker Composeを使ってローカルマシンにRedis Clusterを構築しました。 今回は少し発展させて、Visual Studioで同Docker Composeにアプリケーションをコンテナ起動 & デバッグ実行する方法を紹介します。 接続図 Visual StudioのDocker Compo…

Docker ComposeでローカルマシンにRedisClusterを構築する

ずっとRedis Clusterを使っているものの、ローカル環境を作るのが面倒で数年来避けてきました。 今回Redis 7.0のSharded Pub/Subをしたくなったので、重い腰を上げてローカル環境にDocker ComposeでRedis Clusterを構築したメモです。 概要 Redis Cluster を…

WSL2 環境でのローカル Kubernetes クラスタ構築を検討した話

私はローカル環境のKubernetesにDocker Desktop for Windowsを用いています。 Minikubeやkubeadm、k3s、kind、microk8sなど各種クラスタ構成がある中で、WSL2にローカルのクラスタ環境を他で組んだ場合の違いを改めてみておくことにしました。 今回はローカ…

WSL1 から WSL2 の対応

WSL1を長い間使っていましたが、先日Windows 10 Version2004がリリースされてWSL2に切り替えを行いました。 WSL2いいのですが、WSL1と同じように、あるいはちょっと欲張ろうと少し困ったのでメモ。 概要 WSL1 で何をしていたのか WSL2 で何をするのか WSL2 …

Windows 10 Home で WSL2 と Docker Desktop for Windows を動かす

開発環境ではDockerでDBや各種バックエンドを動かすことが多いのですが、WFHが広がる中で自宅がWindows 10 HomeでDocker Desktop for Windows起動できないんだけど、何か手がないかと相談があったりなかったり。 以前試したときは問題なかったのですが、改め…

SQL Server Docker Image のCU12以降でDBがクラッシュする件

SQL ServerはDockerで動かせるので、いちいちSQL Serverをインストールせずともローカル開発をスムーズに回すことができます。 https://hub.docker.com/_/Microsoft-mssql-server SQL Server on DockerにはmacOSではホストのDBファイルをボリュームマウント…

AzureDevOpsPipeline/Azure DevOps Pipelineでdocker buildとAzure Container Repository への push を行う

Azure Pipelineを使っているとタスクによせたくなるのですが、あんまりそういうのもアレなのでほどほどにというのはもうちょっと言われてもいい気がします。 Dockerはその最たる例です。コマンド3行で済むようなものがDockerタスクを使うといたずらに時間を…

はてなブログをhttps対応するためにmixed contentを検知するMixedContentCheckerを作った

前回の記事でhttps化の前段階として、はてなブログの全URLを取得しました。 https://tech.guitarrapc.com/entry/2019/01/06/034452 https化を有効にすると、mixed contentが出るようになるので有効にします。 あとは、https化したページにhttpコンテンツが混…

はてなブログの全エントリーURLを取得する

このブログ、実はhttpのままです。 はてなブログをやめるか考えているのですが、いったんhttps対応を進めましょう。 困るのがmixed contentなのですが、とっかかりとしてこのブログの全URLを取得します。 sitemap の取得 PowerShell CSharp Golang まとめ si…

.NET CoreアプリをDockerコンテナとして公開する

C# を使っていて最も困るのがランタイムと感じます。 C#は書きやすい、Visual Studioも使いやすいは良く耳にします。実際享受しやすいメリットですが、C# をWindows以外で実行したいはどうでしょうか? 今回はその実行方法についてコンテナを用いるのはどうか…

AzureADログインとDocker for WindowsのShared Driveによるボリュームマウント

Dockerは普段macOSで使っているのですが、そういえばDocker for WindowsがGAされて久しいです。ふつうにLinuxコンテナが動かせるのはWSLとは違うコンテナとしての良さに満ちてていいものです。 docker run -it centos /bin/bash とはいえDocker for Windows…