LoginSignup
0
0

VSCODEでDocker/Flaskまで構築する(Windows11)

Posted at

本記事の背景

Dockerに関する記事が多くありますが、上記にピッタリのものがなかったので、あっちこっちから切り取ってまとめました。

本記事の前提条件

・Docker Desktop Windowsインストール済
・VSCODEインストール済
・VSCODE Docker拡張機能インストール済
・Flaskで簡単なアプリ構築済
・Git For Windowsインストール済
・Git Bashが使える

今回のWebアプリのファイルツリー

2023/06/23  22:40               175 docker-compose.yml
2023/06/23  22:39               254 Dockerfile
2023/06/23  22:32               817 hello.py
2023/06/23  22:25             4,147 requirements.txt

Dockerfile

Dockerコンテナをどのように構築するかの手順が書かれているファイル
今回はpythonライブラリーをpipコマンドでインストールする
つまり、Dockerコンテナの中に仮想環境を作っている

FROM python:3.10.2

WORKDIR /

ENV FLASK_APP=hello.py
ENV FLASK_RUN_HOST=0.0.0.0

COPY requirements.txt ./

RUN pip install --upgrade pip
RUN pip install --upgrade setuptools
RUN pip install -r requirements.txt

COPY . .
CMD ["flask","run"]

Docker-compose.yml

これは、Dockerコンテナの中でサービスを定義し、実行するためのファイル
詳細は以下の記事に譲る
https://qiita.com/ryome/items/35df47a01a7fe3ac70ee

version: '3.10'
services:
  python3:
    restart:  always
    build: .
    container_name: 'python3'
    working_dir: '/'
    tty: true
    ports:
      - "8005:5000"

Dockerのイメージ作成

イメージ作成とは、Dockerコンテナをイメージを一個のCDを焼くみたいな感じです。

docker build -t flask:v1.0 .

flask:イメージ名
v1.0:バージョン
作成後のイメージは以下に示す

$ docker images
REPOSITORY             TAG       IMAGE ID       CREATED          SIZE
flask                  v1.0      d7a5ab9e6bea   40 minutes ago   2.46GB
python                 latest    09b1cac8826b   9 days ago       1.01GB
ubuntu                 latest    99284ca6cea0   2 weeks ago      77.8MB

Dockerの起動、実行

$ docker run --name flask2 -d docker-flask-python3:latest
acc71adb4f9f0c805e171f20f07598f0fcca137317f3276dea4375c71946e38c

--name:コンテナ名
-d: イメージ:TAG

VSCODE上で確認すると以下になります
image.png

アプリケーションの確認

image.png

Dockerの停止

docker-compose stop

image.png

アプリ更新する場合

docker-compose up --build

上記のコマンドが便利ですが、いろいろ副作用があるようです。

参考文献

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0