DevOps & Infrastructure
Installing and Upgrading PowerShell 7 on Windows
Explains the differences between Windows PowerShell and PowerShell 7, steps for installation via WinGet, and the Get-Help documentation mechanism.
Solving WSL 2 Docker File Permission Issues
Sharing my journey from Windows Docker to WSL 2, the brute-force solution for file permission issues, and the final elegant approach using Dev Containers.
Setting up and Configuring Nginx with Docker Compose
A record of the configuration process for quickly deploying Nginx using Docker Compose. Includes a brief introduction to the Nginx architecture (Main, Events, HTTP Context) and focuses on implementation examples using Docker Compose V2 syntax.
Installing Elasticsearch and Kibana with Docker Compose
An introduction to quickly deploying a single-node Elasticsearch and Kibana environment using Docker Compose. Includes complete `docker-compose.yml` and `.env` configuration examples, along with important notes on Volume permission settings.
Solution for SQL Server Permission Issues with Docker Compose
Resolves the 'Permission Denied' issue encountered when setting up SQL Server using Docker Compose. Explains how to adjust the ownership permissions (chown) of the volume mount directory to meet the requirements of the mssql user inside the container.
GitLab CI Syntax and Variables Guide
A guide to common GitLab CI/CD (`.gitlab-ci.yml`) syntax and keywords. Covers Stages, Jobs, Rules, Only/Except definitions, and a reference for Predefined Variables.
Setting up GitLab as a NuGet Package Source in Visual Studio
A tutorial on how to configure a private GitLab Package Registry as a NuGet source for Visual Studio, including how to automate the packaging (.nupkg) and publishing process using GitLab CI/CD pipelines.
Automating .NET Library Versioning with MinVer
An introduction to using MinVer as a replacement for GitVersion for .NET package versioning. This article explains MinVer's Git tag-based version inference mechanism and how to automatically generate AssemblyVersion and PackageVersion to simplify CI/CD workflows.
How to Automatically Apply Shadow Copying Settings When Publishing an ASP.NET Core Website
Solve the issue of DLL locking during ASP.NET Core deployment. It is recommended to pre-configure `web.config` in the project root to enable Shadow Copying, which is superior to the traditional method of manually modifying server settings.
Kibana Installation Guide for Windows
A record of the steps to install Kibana on Windows. Covers directory structure, `kibana.yml` configuration (including Network Host and the `kibana_system` Elasticsearch connection account), and experiences in resolving SSL connection issues.
Accessing Gmail via IMAP Using App Passwords
A guide to resolving issues with reading emails via IMAP after Gmail disabled access for less secure apps. Learn how to enable 2-Step Verification for your Google account and generate an 'App Password' for third-party application connections.
Single-Node Elasticsearch Installation Guide for Windows
A tutorial on how to install a single-node Elasticsearch on Windows. Includes JDK environment setup, basic `elasticsearch.yml` configuration (Cluster/Node Name, Data/Log Path, Network Host), CORS configuration, and JVM memory parameter tuning.
Reasons Why ASPNETCORE_ENVIRONMENT Fails to Take Effect
An in-depth troubleshooting guide on why the `ASPNETCORE_ENVIRONMENT` environment variable settings fail. It was discovered that even after successfully setting global environment variables in Windows, IIS may still read old values, requiring an `iisreset` to restart the IIS service to ensure the changes take effect.
A Brief Discussion on the Differences Between Git Merge and Rebase
Comparing the operating principles and use cases of `git merge` and `git rebase`. Visualizing the impact of both on commit history linearity using Mermaid branch diagrams.
Solving the Missing Font Files Issue in .NET Docker Containers
Provides solutions for installing fonts in .NET 6 (Debian 11) and .NET 8 (Debian 12) environments to address display issues caused by missing font files in Linux containers generated by Visual Studio.
A Brief Introduction to Git Data Structures
An in-depth analysis of the `.git` directory structure. This article introduces the purposes of folders like hooks, info, logs, and refs, and explains how Git objects (Blob, Tree, Commit) store file content and version history using SHA-1 hashes.
A Brief Introduction to Git Commit Conventions
An introduction to Git Commit Message writing conventions, using the Angular Commit Format as an example. It explains the structure of the Header (Type, Scope, Summary), Body, and Footer, as well as common Commit Types (feat, fix, docs, etc.).
A Brief Discussion on Environment Name Configuration and Application in ASP.NET Core
An analysis of the operational mechanism of `EnvironmentName` (Development, Staging, Production) in ASP.NET Core. It compares the differences between Web.config Transform and appsettings.json override logic, and explains the application of `IHostEnvironment`.
Developing with Local NuGet in Visual Studio in Offline Environments
A guide for closed development environments without internet access on how to configure a local folder as a NuGet source and pre-download common packages to resolve restore failures or DLL version mismatches.
Applications of Web.config (App.config) in .NET Framework
Explains how to automatically transform or generate environment-specific Web.config/App.config files in .NET Framework projects based on Debug/Release or custom Build Configurations, preventing errors caused by manual modifications during deployment.
