<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Diary on Ingenboy.inc</title>
    <link>https://blog.ingenboy.com/categories/diary/</link>
    <description>Recent content in Diary on Ingenboy.inc</description>
    <image>
      <title>Ingenboy.inc</title>
      <url>https://blog.ingenboy.com/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E</url>
      <link>https://blog.ingenboy.com/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E</link>
    </image>
    <generator>Hugo -- 0.152.2</generator>
    <language>en</language>
    <lastBuildDate>Sun, 04 May 2025 03:43:03 +0900</lastBuildDate>
    <atom:link href="https://blog.ingenboy.com/categories/diary/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>.envファイルは自動で読み込まれる？Composeでの勘違いと正しい理解</title>
      <link>https://blog.ingenboy.com/post/docker_compose_env/</link>
      <pubDate>Sun, 04 May 2025 03:43:03 +0900</pubDate>
      <guid>https://blog.ingenboy.com/post/docker_compose_env/</guid>
      <description>&lt;h1 id=&#34;背景&#34;&gt;背景&lt;/h1&gt;
&lt;p&gt;最近、Docker Compose で .env を使っていて「あれ？なんで変数が読み込まれないんだ？」という問題に直面しました。結論から言うと、Docker Compose は .env を自動で読み込むが、コンテナの環境変数としては勝手に渡さないという、なかなか紛らわしい仕様によるものでした。&lt;/p&gt;
&lt;p&gt;この記事では、自分がハマったポイントと、それによって得られた正しい理解を共有します。&lt;/p&gt;
&lt;h1 id=&#34;結論だけ知りたい人向け&#34;&gt;結論だけ知りたい人向け&lt;/h1&gt;
&lt;p&gt;.env ファイルは Compose ファイルで ${VAR} の形で参照されたときのみ自動で読み込まれる。&lt;/p&gt;
&lt;p&gt;ただし、.env の内容は自動的にコンテナの環境変数として渡されない。&lt;/p&gt;
&lt;p&gt;コンテナに渡したいなら、env_file: または environment: を明示的に使う必要がある。&lt;/p&gt;
&lt;h1 id=&#34;-勘違いしていたこと&#34;&gt;❌ 勘違いしていたこと&lt;/h1&gt;
&lt;p&gt;「.env は docker-compose.yaml と同じディレクトリに置けば、何もせずともコンテナに環境変数として渡される」&lt;/p&gt;
&lt;p&gt;実際に .env に以下のような内容を記述していました：&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;hogehoge=hoge
hoge=foo
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;ところが、Compose を起動してもコンテナ内にこれらの変数は存在しませんでした。&lt;/p&gt;
&lt;h1 id=&#34;原因env-はあくまで-compose-ファイル用のテンプレート変数&#34;&gt;原因：.env はあくまで Compose ファイル用のテンプレート変数&lt;/h1&gt;
&lt;p&gt;例えば以下のように docker-compose.yaml 内で ${VAR} を使えば、それは .env から自動で補完されます：&lt;/p&gt;
&lt;h1 id=&#34;-コンテナに環境変数を渡すには&#34;&gt;✅ コンテナに環境変数を渡すには？&lt;/h1&gt;
&lt;p&gt;方法は2つ：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;env_file: を使う（.envファイルをそのまま指定）&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;services:
  web:
    image: myapp
    env_file:
      - .env
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;この場合、.env の中身がまるっとコンテナに渡されます。&lt;/p&gt;
&lt;ol start=&#34;2&#34;&gt;
&lt;li&gt;environment: を使う（必要な変数だけ）&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;services:
  web:
    image: myapp
    environment:
      - P_ARS=${P_ARS}
      - INET_ID=${INET_ID}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;このように書けば、Compose 内で .env の変数を参照して環境変数として渡せます。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Systemctl_ope</title>
      <link>https://blog.ingenboy.com/post/systemctl_ope/</link>
      <pubDate>Thu, 27 Feb 2025 23:00:11 +0900</pubDate>
      <guid>https://blog.ingenboy.com/post/systemctl_ope/</guid>
      <description>&lt;h1&gt;&lt;/h1&gt;</description>
    </item>
    <item>
      <title>Oh_my_zsh</title>
      <link>https://blog.ingenboy.com/post/oh_my_zsh/</link>
      <pubDate>Sat, 28 Dec 2024 02:26:38 +0900</pubDate>
      <guid>https://blog.ingenboy.com/post/oh_my_zsh/</guid>
      <description>&lt;h1 id=&#34;プロが使いがちなシェルです&#34;&gt;プロが使いがちなシェルです&lt;/h1&gt;
&lt;p&gt;まあ自分はこだわりとかなかったので、bashを使っていたのですが、先輩たちのターミナル裁きを見ていると、なんかすごいんですよね。
queryとか出して過去のコマンドを一発で実行したり、tmuxとかで複数立ち上げたり、まあとにかくすごい。
でね、まあzshというのを使っているっポイのですわ。
ということで、zshのについていろいろ書いていこうと思います。&lt;/p&gt;
&lt;h1 id=&#34;how-to-install&#34;&gt;How to install&lt;/h1&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sudo apt install zsh

chsh -s $(which zsh)

sh -c &amp;#34;$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)&amp;#34; (oh my zshのインストール)
&lt;/code&gt;&lt;/pre&gt;&lt;h1 id=&#34;色々調べていい感じにカスタマイズしてください&#34;&gt;色々調べていい感じにカスタマイズしてください&lt;/h1&gt;</description>
    </item>
    <item>
      <title>Booking_scheduling_system</title>
      <link>https://blog.ingenboy.com/post/booking_scheduling_system/</link>
      <pubDate>Tue, 27 Aug 2024 13:45:03 +0900</pubDate>
      <guid>https://blog.ingenboy.com/post/booking_scheduling_system/</guid>
      <description>&lt;h1&gt;&lt;/h1&gt;</description>
    </item>
    <item>
      <title>House_keeping</title>
      <link>https://blog.ingenboy.com/post/house_keeping/</link>
      <pubDate>Tue, 13 Aug 2024 21:13:14 +0900</pubDate>
      <guid>https://blog.ingenboy.com/post/house_keeping/</guid>
      <description>&lt;h1 id=&#34;家事&#34;&gt;家事&lt;/h1&gt;
&lt;h2 id=&#34;813&#34;&gt;8/13&lt;/h2&gt;
&lt;h3 id=&#34;r&#34;&gt;R&lt;/h3&gt;
&lt;p&gt;風呂掃除
皿洗い&lt;/p&gt;
&lt;h3 id=&#34;t&#34;&gt;T&lt;/h3&gt;
&lt;p&gt;昼ごはん
洗濯
コンロ掃除&lt;/p&gt;
&lt;h2 id=&#34;814&#34;&gt;8/14&lt;/h2&gt;
&lt;h3 id=&#34;r-1&#34;&gt;R&lt;/h3&gt;
&lt;h3 id=&#34;t-1&#34;&gt;T&lt;/h3&gt;
&lt;p&gt;朝ごはん
昼ごはん&lt;/p&gt;</description>
    </item>
    <item>
      <title>Global_Private_CGN_ip</title>
      <link>https://blog.ingenboy.com/post/global_private_cgn_ip/</link>
      <pubDate>Thu, 18 Jul 2024 18:08:55 +0900</pubDate>
      <guid>https://blog.ingenboy.com/post/global_private_cgn_ip/</guid>
      <description>&lt;h1 id=&#34;プライベートipアドレス&#34;&gt;プライベートIPアドレス&lt;/h1&gt;
&lt;p&gt;Class A: 10.0.0.0 to 10.255.255.255
This range supports a large number of hosts and is often used in very large networks.&lt;/p&gt;
&lt;p&gt;Class B: 172.16.0.0 to 172.31.255.255
This range is commonly used in medium-sized networks.&lt;/p&gt;
&lt;p&gt;Class C: 192.168.0.0 to 192.168.255.255
This range is typically used for smaller networks, like home or small business networks.&lt;/p&gt;
&lt;p&gt;合計いくつあるのでしょうか？
class Aは2^24くらいいけね？つまり？&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt; 2**24
16777216
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;はい、classBは？&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt; 16*2**16
1048576
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;classCは？&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt; 2**16
65536
&lt;/code&gt;&lt;/pre&gt;&lt;h1 id=&#34;グローバルipアドレス&#34;&gt;グローバルIPアドレス&lt;/h1&gt;
&lt;p&gt;はい、グローバルIPね。JPNICとか、そのへんによって管理されているやつね。
2^32個ありますね、はい。そこから上のクラスのを抜いていきます&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;2**32 - 2**24 - 16*2**16 - 2**16
=4277075968
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;それでも40億箱しているって話ね。しかしだよ。これすごく重要なこと言います。実はまだグローバルに割り当てられていないIPが存在するんです。知ってましたか？？（初耳）&lt;/p&gt;</description>
    </item>
    <item>
      <title>マインカンプ</title>
      <link>https://blog.ingenboy.com/post/autobiograpy/</link>
      <pubDate>Fri, 27 May 2022 18:06:51 +0900</pubDate>
      <guid>https://blog.ingenboy.com/post/autobiograpy/</guid>
      <description>&lt;h1 id=&#34;コンピュータを学ぶに当たり自分がたどってきた過程&#34;&gt;「コンピュータ」を学ぶに当たり、自分がたどってきた過程&lt;/h1&gt;
&lt;p&gt;コンピュータに強くひかれてから6年弱(2018/10 - 2024/04)が経過したわけだが。
自分は、ほぼ手探り状態でコンピュータの知識を身に着けていった。
今となっては知らなくてもよかったと思う知識もおおい。しかし、「ランダムサーチ」的な勉強によって「点」で身に着けていった知識が、少しづつ「線」でつながっていき、結果的にコンピュータ分野における自分の視野を広げてくれているとも思う。&lt;/p&gt;
&lt;p&gt;自分がコンピュータを学ぶ時にどんな過程を辿ってきたか、まあ、簡単に書いていきたいと思う。
ただの日記になってるとこもある。&lt;/p&gt;
&lt;h5 id=&#34;201804&#34;&gt;2018/04&lt;/h5&gt;
&lt;p&gt;サーバーって何？ブラウザって目の前にあるコンピュータのなかに入ってる辞書みたいなものじゃないの？インターネットって、インターネットエクスプローラのことじゃないの？って思ってたところからの成長過程&lt;/p&gt;
&lt;h5 id=&#34;20185&#34;&gt;2018/5&lt;/h5&gt;
&lt;p&gt;授業でcをやる。正直何が楽しいのかわからなかった。printf()でもじが出力できます。。うんたらかんたら、、、で？
でも、レポートとか早くまとめられるようにタイピングは速くなりたかった。適当にwordで日記をつけたりしてた。&lt;/p&gt;
&lt;h5 id=&#34;201808&#34;&gt;2018/08&lt;/h5&gt;
&lt;p&gt;たけしに勧められ、タイピングバラエティーを始める。&lt;/p&gt;
&lt;h5 id=&#34;201810&#34;&gt;2018/10&lt;/h5&gt;
&lt;p&gt;なんか、大学って俺が思ってたところと違うな、と思い始める。
機械系に入ったのは、バリバリ機械をいじれるからだと思ってたのに、なんか学校でやるのは線形代数とか、微分とか、は？って感じだった。僕は実用的なことが好きだった。
んで、その時とってた授業で唯一実用的だなって思ったのが、前期はなかったcプログラミングの授業。最近の機械は制御でもcが使われてるらしいし、ちゃんと聞いて損はないなって思った。&lt;/p&gt;
&lt;p&gt;#####　2018/11
cの授業が楽しくてはまっていった(そのC言語の授業を担当していた先生が好きで、せっかくなので授業も頑張ろとおもい、それに付随してコンピュータも好きになったと思う。自分にしては珍しく、教室の一番前で授業を受けていた。3年生の時この先生の研究室に入ることになるが、入った年に別の大学に移ってしまったのは本当に残念なことである。)。最終的には7並べのゲームを作るらしい、ということでやる気が出た。
自分のノートpcにMingwとか入れた。windows用のcコンパイラだね。
この時はパスって概念もわからなかったし、コマンドプロンプト上でコンパイルできた時はかなりうれしかった。&lt;/p&gt;
&lt;p&gt;#####　2019/01
とりあえずpc極めたいならデスクトップ買うしかなくね？と思って、ドスパラでで現在も愛用しているbtoのpcを買う。ちなみに、一代目にBTOを購入することにしたのは非常にいい選択だったと思う。すぐ動くけど、拡張性にも優れているからね。&lt;/p&gt;
&lt;h5 id=&#34;201902&#34;&gt;2019/02&lt;/h5&gt;
&lt;p&gt;春休み。なんか、せっかくデスクトップ買ったのにどうやって活用するのかわからない（笑）
うーん、デスクトップ買う意味なかったか？（笑）って思ってるうちに、まあとりあえずネットワークについて学ぼう、と思い図書館へ足を運ぶようになる。
このころからマジで図書館にめっちゃ行くようになる。
パソコンに触れ始めた人って結構ハッカーとかにあこがれること多いと思うんだよね（笑）俺もそうだった。んで、最初に借りた本が『ハッカーの教科書』
これ、ネットワークについて何も知らない人が読むものではありませんでした（笑）ARP?ポート？SSH。。。なにそれまったくわからんわ。。。
とか思ってるうちに春休みが終わった。この年は厳冬期の聖岳に行って凍傷になりました。でもマジで楽しかったー。&lt;/p&gt;
&lt;h5 id=&#34;20194&#34;&gt;2019/4&lt;/h5&gt;
&lt;p&gt;しんがっき。とりあえず、プロコン始めるか！って言ってプロコン始めた。こっから2020/2くらいまで、ほぼ毎週出た。
C言語で出続け、アルゴリズムとデータ構造とかもほとんどわからなかったから、ぶっちゃけレートは全然上がらなかった。が、c言語の基礎は学べたし、後々c++を習得することにつながったと思っている。今思うと、キューもマップも使わずにcで出続けるってかなり無謀だったな…&lt;/p&gt;
&lt;h5 id=&#34;20195&#34;&gt;2019/5&lt;/h5&gt;
&lt;p&gt;プロコンに興じていたが、なんか、これって結局誰かの掌の上で踊らされてね？って思って、再びハッカーの教科書を読み始めた。しかし、やっぱり何もわからん。。。
唯一わかったのが、kali linuxというosにはハッキングツールがたくさん入っていて、なんかかっこいいといういこと。で、このころ、せっかく買ったデスクトップがマジでただ置いてあっただけになりつつあったので、
こいつ、windows入ってるけど、kali linux新しくいれね？って思って、どうやって入れるのかいろいろ調べていたら、なんとデュアルブートというものがあるじゃない。
dual bootは一つのpcに二つのosが入ってる状態のこと。その当時、結構パソコンに詳しくなってきて、「完全に理化した」状態になっていたけど、まー今の俺から見るとその当時の俺なんてぺーぺーで、kali linuxをdual bootできるようにするまでも結構時間かかったねー。
しかし、ミスったらwindowsが消える可能性もあったが、結構頑張ってとりあえずkali linuxを入れることに成功した。よくあきらめなかったぞ！&lt;/p&gt;
&lt;h5 id=&#34;20197&#34;&gt;2019/7&lt;/h5&gt;
&lt;p&gt;頑張ってハッカーの学校を読み進めた。理解できた概念は、ポート、ipアドレス、ドメイン、など。
そして、nmapというポートスキャンツールの存在を知った。
こいつにはまった。マジで。ネットでnmapと検索すると、絶対にwanでポートスキャンしちゃいけないとか書いてあるし、中二ごころをくすぐられたね。あーおれハッカーになったんだと錯覚した。実際は全然大したことなく「script kiddy」にも達していなかっただろう。しかし非常に楽しかった。kaliを使って、lan内で、wifiでつながってるノートpcに何回もポートスキャンかけて遊んだ。起きて一番最初にすることは、nmapだった。
でもだんだん出てくるドーパミンの量も減っていくんですよね。。。そして、だんだんと飽きてくるんですねー。ノートpcにnmapをかけるのも。で、やってしまったんですよ。出来心で。 あのg社のdnsサーバにnmapをかけた。
普通のnmapは5秒くらいでスキャンが終わるんですけど、その時は20秒くらいたっても終わらず、なんかだんだん焦ってきて、
とりあえず、ctrl+cでnmapプロセスを停止。んで、ブラウザでnmap についてしらべようとしたら、いつまでたっても検索できなくなったんだよね。
????ってなって、だんだん焦ってきて、しばらくたったら回復して検索できるようになった。で、どのサイトで見ても、他人のサーバーにnmapしたら犯罪って書いてあったんだよね。
あ、大学退学になるわ、俺の人生終わったわ、っておもって2日くらいびくびくしてた。眠れなかったね。でも結局あれから5年以上たってるけど、G社からやばい手紙とかは来ていないので大丈夫そう。被害妄想が激しかった。&lt;/p&gt;
&lt;h5 id=&#34;20198&#34;&gt;2019/8&lt;/h5&gt;
&lt;p&gt;10月実施の基本情報技術者試験のための勉強をした。それと、ハッカーの学校のレベルが高すぎるかなと思い、代わりにTcp/ipの絵本を読んだ。こっちはかなり基本から書いてあって読みやすかった。
このころ、資格の勉強って実用的じゃなくて、ほんと資格のための勉強って感じだな、学校の勉強みたいだなて思ったね。でも今思うと、そこで基礎を鍛えられて気もする。まあ、理論と実践はバランスが大事ですよね。&lt;/p&gt;
&lt;h5 id=&#34;20199&#34;&gt;2019/9&lt;/h5&gt;
&lt;p&gt;ラズパイというものがあると知った。格安コンピュータ6000円？！。しかもosはlinuxだと。即買いしましたね。
パソコン技術を爆上げしてくれるきっかけになったのはやっぱりラズパイ購入だと今でも思ってる。
まずCLIの基礎についてかなり勉強できた。そして、LINUXについて勉強した。
そして、sshを学んだ。生まれて初めて、ネットワークでパソコンがつながっていることを実感した。firelilyから、ラズパイにssh成功した時は震えた。これが「通信」なのか、とね。
朝起きてから最初にやることはsshになった。しかし、これにも飽きて次に進むわけです。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
