スキップしてメイン コンテンツに移動

投稿

注目の投稿

【Day 33】CRLF/LF改行コード問題と .gitattributes 完全定義

最近の投稿

【Day 35】外部DBやホストOSのサービスと通信する(host.docker.internal) 〜コンテナからホストへの逆引き通信・Windows/Linux挙動差異(extra_hosts)・レガシー資産とのハイブリッド移行戦略・C# EF Core接続文字列設計〜

▲ Day 35: 外部DBやホストOSのサービスと通信する(host.docker.internal) 🐳 「コンテナの中から、開発PC上で元気に動いているSQL Serverに繋がらない!? localhostって書いたら自分自身を探しに行って爆死したんだが…!」 前回(Day 34)は、ポートマッピング( -p 8080:80 )によって「ホストOSからコンテナへ外から内側へ通信する」仕組みをマスターしました。 しかし、現場で次に必ず突き当たるのが 「逆方向(コンテナの内側からホストOS・外部既存システムへ通信したい)」 という強い要求です。 「手元のWindows PCには長年育ててきた巨大なSQL Server ExpressやOracleインスタンスがある。まずはC# Web APIだけをコンテナ化して試したいのに、接続文字列に Server=localhost と書くと接続タイムアウトで即死する! ホストPCのIPアドレスを直書きするとWi-Fi切り替えやDHCPで毎日変わって破綻する!一体どうやってホストOSに繋げばいいんだ!?」 本講義では、Dockerが提供する特殊DNS名 host.docker.internal の仕組みから、Linux/CI環境での extra_hosts 対策、そして大規模レガシー資産を抱える現場で安全にコンテナ化を進める「ハイブリッド移行戦略」までを徹底解説します! 📑 本講義のロードマップ 第1章:なぜ localhost ではホストPCに届かないのか? 〜ネットワーク名前空間(Namespace)の隔離壁〜 第2章:魔法の特殊DNS名 h...

【Day 32】git switch - やエイリアス設定で日常操作を10倍爆速化する

▲ 【Day 32】git switch - やエイリアス設定で日常操作を10倍爆速化する 👨‍🏫 皆さん、こんにちは! 本講座の専任講師です。 前回のDay 31では、過去に一度解いたコンフリクトをGitが自動学習して再利用する魔法の機能 「git rerere」 を学びました。 そして本日のDay 32からは、日々のGit操作のタイピング量やマウス操作の手間を極限まで削ぎ落とし、開発スピードを何倍にも引き上げる 「作業効率化テクニック」 へ突入します! テーマは、 【git switch - やエイリアス設定で日常操作を10倍爆速化する】 です! 「ブランチを切り替えるたびに、長くて複雑なブランチ名を手打ちしてタイポする…」 「1日に何十回も git status や git branch をフルスペルで入力している…」 「いま自分がどのブランチで作業していて、何件の未コミット変更があるのか、コマンドを打たないと分からない…」 そんな日々の小さなタイムロスやストレスは、年間で数十時間もの無駄を生み出しています。 直前ブランチへの1秒復帰( switch - )、わずか2〜3文字で完結するプロ厳選のエイリアス(短縮コマンド)、そしてWindows/C#開発者の標準環境であるPowerShellプロンプトのGit情報可視化をマスターして、思考のスピードでコードを紡ぐ圧倒的開発フローを手に入れましょう! ① 導入・本日の達成目標 Gitのコマンドは非常に高機能ですが、日常的によく使うコマンドを毎回フルスペルで律儀に入力していると、キータイピングの負荷や誤入力によるストレスが蓄積します。 特にVisual StudioやVS Codeを操作しながらターミナルでGitを叩くC#開発者にとって、キー...

【Day 34】ポートマッピング(-p 8080:80)とポート競合の解決法 〜ホストとコンテナを繋ぐポートフォワーディングの原理・IIS(80)/SQL Server(1433)衝突回避・PowerShellポート調査術・.env変数化によるC#チーム開発ベストプラクティス〜

▲ Day 34: ポートマッピング(-p 8080:80)とポート競合の解決法 🐳 「コンテナを起動しようとしたら『Ports are not available: bind: address already in use』で失敗した!? ホストとコンテナのポートってどう繋がっているの?」 前回(Day 33)は、Docker内蔵DNS(127.0.0.11)とサービス名通信によって「IPアドレスを覚えなくてよい世界」を学びました。 しかし、次に立ちはだかるのが 「外部ブラウザやホストPCからコンテナへどうやってアクセスするのか?」 というポートの壁です。 「物理サーバーやオンプレミスVMなら、各マシンが独自のIPアドレスを持っていたので、どのサーバーでも80番や1433番ポートを独占して待ち受けることができた。 だが開発用Windows PC上でDockerを動かすと、既存のIIS(80番)やSQL Server(1433番)と衝突してコンテナが起動しない! `-p 8080:80` ってどっちが外側でどっちが内側なの?」 本講義では、ポートフォワーディングの根本原理から、Windowsでのポート競合調査術、そしてチーム開発で絶対に衝突しない .env を使った柔軟なC#現場設計までを徹底解説します! 📑 本講義のロードマップ 第1章:ポートマッピング(-p)の原理 〜ホスト受付口とコンテナ実サービスの対応関係〜 第2章:現場で最も起きる「ポート重複エラー」の正体 〜IIS(80)&ローカルSQL Server(1433)の激突〜 第3章:PowerShellに...

【Day 31】git rerere で過去に解決したコンフリクトを全自動解決させる魔法

▲ 【Day 31】git rerere で過去に解決したコンフリクトを全自動解決させる魔法 👨‍🏫 皆さん、こんにちは! 本講座の専任講師です。 前回のDay 30では、全リポジトリのコミット差分から消えた過去の関数や定数を0.1秒で掘り当てる 「git log -S(つるはし検索)」 の神技を学びました。 そして本日のDay 31は、チーム開発や長期ブランチ運用において全エンジニアが一度は激しいストレスを感じるあの悩み—— 「毎朝 main をリベース(マージ)するたび、昨日と全く同じコンフリクトを何度も手作業で解かされる……!」 という無駄な作業をこの世から完全に消滅させる奇跡の魔法—— 【git rerere で過去に解決したコンフリクトを全自動解決させる魔法】 を徹底解説します! rerere とは、 「Reuse Recorded Resolution(記録された解決の再利用)」 の略称です。 この機能を有効にしておくだけで、Gitはあなたが一度手動で解いたコンフリクトの「衝突パターン」と「解決結果」を裏側で自動記憶します。 そして次回以降、全く同じコードの衝突が発生した瞬間に、 人間が何もしなくてもGitが全自動でマージを完了 してくれるのです! C#ソリューションでのNuGet依存関係の競合や共通設定ファイルの衝突など、現場の消耗を一掃するプロの必須テクニックを身につけましょう! ① 導入・本日の達成目標 複数人で開発を進めていると、数週間〜数ヶ月に及ぶ長期フィーチャーブランチを運用することがあります。 最新の main ブランチの変更を取り込もうと git rebase main や git merge main を行うたびに、まったく同じファ...