Skip to content

Docker

Amazon Linux 2023上にHTTPSで保護されたDifyを新規構築する

Amazon Linux 2023上にDockerでDifyを起動する手順をメモしておきます。Difyを構成するコンテナ群にはcert-botコンテナが含まれており、サーバ証明書を新規取得・更新する能力を持っています。今回はcert-botコンテナも併用し、サーバ証明書を取得してDifyをHTTPSでサービスします。

Dockerで不要ストレージを削除する

Dockerの設定方法やトラブルシューティングについては下記などで説明されています。

後者のドキュメント中のDocker デーモンの設定に以下の記載があります。記載の通り、Dockerの設定をカスタマイズしたい場合は「/etc/docker/daemon.jsonを新規作成して設定する」という方法があります。

Docker デーモンを JSON ファイルで設定するには、Linux システム上では /etc/docker/daemon.json にファイルを作成するか、Windows 上では C:\ProgramData\docker\config\daemon.json を作成します。Mac OS ではタスクバーの鯨アイコンから Preferences > Daemon > Advanced を選択します。

/etc/docker/daemon.jsonを作成していない場合、デフォルトでDockerはコンテナイメージなどを「/var/lib/docker」ディレクトリ配下に保存します。不要なコンテナイメージやボリュームが貯まっていくとストレージを圧迫してしまいます。今回は不要になったDocker関連ストレージを削除する方法をメモします。

docker composeで起動したDifyからSMTPでメール送信する

先日、docker composeでDifyを起動するというメモを書きました。Difyへユーザを招待するにはメールアドレスを登録するのですが、デフォルトの状態では「メールアドレスを登録はするものの、実際にメールは送信されない」という動作をします。SMTPの設定を行うことでメールを送信するよう、設定を修正します。

docker buildxでamd64/arm64両対応のコンテナイメージを作成する

Dockerコンテナイメージをamd64とarm64の両プラットフォーム向けにマルチプラットフォームビルドする方法は公式サイトのMulti-platform buildsに記載されています。同ページのStrategiesセクションにはマルチプラットフォームビルドに関して以下、3種類の方法が記載されています。

  1. Using emulation, via QEMU
  2. Use a builder with multiple native nodes
  3. Use cross-compilation with multi-stage builds

1番の方法は最も簡単ですが、パフォーマンスが出ないそうです。とは言え、私の場合はそこまで頻繁にイメージ作成するわけではありませんので、最も手軽な1番を実施する方法をメモしておきます。

CML2.9.0と同時リリースされたリファレンスプラットフォームに含まれるコンテナイメージ

CML 2.9.0から新たにコンテナ機能がサポートされています。CML 2.9.0と同時に公開されたリファレンスプラットフォーム「refplat-20250616-fcs-iso」に含まれるコンテナイメージの一覧はSupport for Container Imagesに書かれています。

image

ここには「splunk」というイメージについて言及されているのですが、「refplat-20250616-fcs-iso」にはこのイメージは含まれていないようです。つまり、実際に含まれているコンテナイメージは以下のようです。

  1. chrome-136-0-7103-113-1.tar.gz
  2. dnsmasq-2-9-0.tar.gz
  3. firefox-138-0-4-build1.tar.gz
  4. frr-10-2-1-r1.tar.gz
  5. net-tools-1-0-0.tar.gz
  6. nginx-3-38.tar.gz
  7. radius-3-2-1.tar.gz
  8. syslog-3-38.tar.gz
  9. tacplus-f4-0-4-28.tar.gz
  10. thousandeyes-ea-1-210-0.tar.gz

先日、dfimageでDockerコンテナイメージからDockerfileを復元するで触れたdfimageを使い、これらのイメージのDockerfileを確認してみました。