- 2025年12月5日
- 2025年12月5日
バイブコーディングにほんの少し触れてみて
バイブコーディングに触れてみて感じたこと〜1年ぶりの復活投稿〜 みなさん、お久しぶりです。キョウタコです。 1年以上、記事の執筆をサボってしましました。どうもアウトプットというものが苦手なのですが、ま […]
バイブコーディングに触れてみて感じたこと〜1年ぶりの復活投稿〜 みなさん、お久しぶりです。キョウタコです。 1年以上、記事の執筆をサボってしましました。どうもアウトプットというものが苦手なのですが、ま […]
今回の記事ではAPIを修正し、DBサーバーから取得したデータを元にレスポンスを作成するようにして、webAPIの完成まで持っていきます。 今回のWebAPIはAPIサーバーにJavaのSpring Boot、DBサーバーにPostgresSQLを利用して外部からポート8080でAPIサーバーにアクセスし、DBのデータを取得後レスポンスを返すという簡単なものを作成していきます。 イメージとしては以下のようなものを作成していきます。
今回の記事ではdocker-compose.yamlを作成し、DBサーバーの立ち上げと初期化までの動作確認を行います。 今回のWebAPIはAPIサーバーにJavaのSpring Boot、DBサーバーにPostgresSQLを利用して外部からポート8080でAPIサーバーにアクセスし、DBのデータを取得後レスポンスを返すという簡単なものを作成していきます。
今回の記事から2回に分けてdocker composeの実践として、WebAPIサーバーとDBサーバーを作成し、ネットワークやボリュームの設定をして、WebAPIの作成を一括で行います。 今回のWebAPIはAPIサーバーにJavaのSpring Boot、DBサーバーにPostgresSQLを利用して外部からポート8080でAPIサーバーにアクセスし、DBのデータを取得後レスポンスを返すという簡単なものを作成していきます。
前回の記事でコンテナのbridgeネットワークへの接続についてまとめました。 今回はbridgeネットワーク内での通信についてまとめていきます。 事前準備 コンテナ間通信を実施するために、カスタムイメ […]
Dockerでサービスやアプリを作成する場合、webサーバーやDBサーバーなどの機能ごとにコンテナを作成しコンテナ間で通信を行うように構成されることが多いです。 また、コンテナによって外部のアクセスを許可するか拒否するかの制御を行ったり、特定のコンテナとしか通信できないようにするなど、様々なアクセス制御が必要になります。 今回の記事ではこれら実現するための、bridgeネットワークでの接続方法について詳しくまとめていきます。
コンテナに外部からアクセスする際には、ポート番号を指定して通信を行う必要があります。 今回の記事ではコンテナへ外部からアクセスするためのポートの紐付けについてまとめていきます。 まず最初にポート番号について簡単に説明します。 ポート番号とは、通信を行う際にそのコンピュータ上のどのアプリに接続するのかを示すために振り分けられている番号のことです。 通信を行う際は以下の例のようにコンピュータを示すIPアドレスの後に付随してポート番号を指定します。 例:192.168.1.100:8080 ・・・ [IPアドレス]:[ポート番号]という形式で通信先を指定する コンテナ上のアプリにアクセスする際も、コンテナ上で起動しているどのアプリに接続するのかを指定するためにポート番号を振り分ける必要があります。
バインドマウントとはホストマシン上の任意のフォルダと同期させる方法です。 ホストマシン上のフォルダと同期するため、コンテナ上のデータと違いホストマシン上にも存在するデータのためコンテナ削除後もデータを残すことができます。 また、同期されているためホスト、コンテナ両方から頻繁に編集するファイルなどを扱うのに適しています。
ボリュームとは、Docker上に作成できる永続的なデータ領域です。 コンテナ上のデータはコンテナを削除すると消えてしまいますが、ボリューム上にデータを保持することで永続化させることができます。 ボリュームは複数のコンテナからアクセスすることができ、外付けHDDのような役割を果たします。
今回の記事ではDockerイメージを効率的に作成するためのテクニックであるマルチステージビルドについてまとめていきます。 マルチステージビルドをすることで、効率的なビルドやビルドイメージの軽量化、セキュリティリスクの軽減などの効果が期待できます。 マルチステージビルドとは、通常、1つのイメージのみで構築するDockerfileの中に複数のイメージを利用して構築する手法です。この時の一つ一つのイメージのことをステージといいます。 各ステージでは別のイメージを利用することができ、ビルド時のみに必要なコンパイラなどを分けることができます。 このようにステージ毎に必要なイメージを分けることで、最終的に必要なものだけを最終イメージに含めることができ、イメージの容量の軽量化や効率的なビルドを実現することができます。