Kon's DX Lab - Case Study

Day 75|StreamlitアプリをVPS+Dockerで動かしてみた

Published on 2025-06-15

🔬 Case Study Summary
Problem

(ここに課題を記述)

Result

(ここに具体的な成果を記述)


Tech & Process

(ここに採用技術とプロセスを記述) コードを詳しく見る »

こんにちは、こんです🦊

今日は、昨日構築したConoHa VPS環境にStreamlitアプリ「JPAddressChecker」をデプロイしてみた実験記録をお届けします!


💡 私自身つまずいた初心者ポイントメモ

VPSを初めて触ってみて、「これ、どうすればいいの?」と手が止まった場面がいくつかありました。
同じようにこれから触れる方の参考になればと思って、自分用のメモを共有しておきます📝


▶️ JPAddressChecker の Docker構成

まずはアプリのフォルダ構成を整えます👇

/opt/tools/jpaddresschecker/
├── app/
│   └── app.py         # Streamlitアプリ本体
├── Dockerfile
└── docker-compose.yml

✅ ステップバイステップで構築

① ディレクトリ作成

sudo mkdir -p /opt/tools/jpaddresschecker/app
cd /opt/tools/jpaddresschecker

② 仮のStreamlitアプリ(app.py)

sudo nano app/app.py
import streamlit as st

st.title("📦 JPAddressChecker")
st.write("こんにちは!このアプリは住所チェックツールです。")

保存:Ctrl + O → Enter → Ctrl + X

③ Dockerfileの作成

sudo nano Dockerfile
FROM python:3.10-slim
WORKDIR /app
COPY app /app
RUN pip install --no-cache-dir streamlit
EXPOSE 8501
CMD ["streamlit", "run", "app.py", "--server.port=8501", "--server.enableCORS=false"]

④ docker-compose.ymlの作成

sudo nano docker-compose.yml
version: "3"
services:
  jpaddresschecker:
    build: .
    container_name: jpaddresschecker
    restart: always
    ports:
      - "8501:8501"

⑤ 起動コマンド実行

sudo docker-compose up -d --build

✅ 8501番ポートを開放しよう

Step 1:現在のファイアウォール状況を確認

sudo ufw status verbose

8501番が含まれていなければ開放が必要です。

Step 2:8501番ポートを開ける

sudo ufw allow 8501
sudo ufw status verbose

出力に 8501 ALLOW Anywhere が含まれていればOK!

Step 3:ConoHa側のセキュリティグループも設定!

  1. ConoHaコントロールパネル → セキュリティグループ
    → 8501ポートを含むグループを新規作成

  2. サーバー詳細 > ネットワーク情報 → 作成したグループを割り当て

✅ ⑥ ブラウザでアプリを確認!

以下のURLにアクセスしてみましょう👇

http://<VPSのIPアドレス>:8501

「📦 JPAddressChecker」が開いたら成功です!

✨ 実感したこと

  • Dockerだと構成が超明快で、アプリの管理が楽!

  • docker-compose up 1発でアプリが起動するのが気持ちいい!

  • セキュリティ周りも初期で抑えてるので運用しやすい安心感


次回予告

nginx+リバースプロキシ構成で「/jpaddresschecker」などのパス付きアクセスを実現します!

  • 独自ドメインで運用したい!

  • SSL(HTTPS)もつけたい!

そんな要望を叶えるステップに進んでいきます🦊


まとめ

「コードは書けたけど、公開するのが怖い」
→ その壁、DockerとVPSで超えられます!

非エンジニアでも構築できる運用環境として、ConoHa VPS+Docker構成はとてもおすすめです。

このあとの「nginx・HTTPS・ドメイン設定」まで含めれば、もうあなたもWebアプリ配布マスター!

それでは、また次の実験で!🦊


#100日チャレンジ #業務改善 #ノーコード #Docker #Streamlit #JPAddressChecker #VPS #ConoHa #デプロイ #ChatGPTで業務効率化