0から作ってみる かそつーbot開発日記(1話 開発環境構築)

今回は開発環境の構築を行いたいと思います. 

0. 方針

  • 使用言語はpython 

  • デプロイを楽に


1. リポジトリ作成

vcbot-sample というリポジトリを作成しました. 
作成後, リポジトリの初期案内に沿ってREADME を作成しただけです. 


2. Dockerfile& devcontainer.json 作成

まず開発の主軸となるDockerfile を作成します. 
.devcontainer ディレクトリを作成して Dockerfile と devcontainer.json を追加していきます. 

ひとまず, 以下の3行のみ書いて devcontainer で用いるDockerfileを作成します.

FROM python:3.10-slim-buster
RUN apt-get update && apt-get install -y \
    git

もう一つ, devcontainerを使うために devcontainer.json を作成します.  
動かすためだけのため一旦このようにしました. 

{
    "name": "Python 3.10 dev",
    "context": "..",
    "dockerFile": "Dockerfile",
    "settings": {
        "terminal.integrated.profiles.linux": {
            "zsh (login)": {
                "path": "zsh",
                "args": ["-l"]
            }
        },
        "python.pythonPath": "/usr/local/bin/python"
    },
    "extensions": [
        "ms-python.python",
        "kevinrose.vsc-python-indent"
    ]
}

上記の二つのファイルが作成できたので, devcontainer で使えるかの確認をしたところ, コンテナ内に入ることができたので一旦ここでコミットすることにします.

以下のプルリクストで変更を入れました. 
今後も変更がわかりやすいように できるだけPR(or commit)を載せていこうかと思います. 


3. poetry の追加, python 周辺の設定など

poetry を使えるようにするため, Dockerfile に変更を入れます.
まず poetry の追加です. 
pip で入れる方法もありますが, 非推奨のため以下のようにしてインストールしています. 
version は, 2022/07/18 現在, 新しもので 1.2.0b3 と 1.1.14 がありましたが 1.2 系はまだ pre release となっていたため, 1.1.14にしました.

FROM python:3.10-slim-buster
RUN apt-get update && apt-get install -y \
    curl \
    git

ENV PYTHONDONTWRITEBYTECODE 1 \
    PYTHONUNBUFFERED 1 \
    POETRY_VERSION=1.1.14

RUN curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python
ENV PATH="${PATH}:/root/.poetry/bin"

poetry のインストールができたので 次にpython で開発するための設定等を行っていきます 
devcontainer を build し直して, コンテナ内に入って以下のコマンドを打ち,
pyproject.toml を作成します. 

poetry init 

次に 開発時に使うパッケージをインストールします. 

poetry add -D black flake8

上記のコマンド入力後, poetry.lock が作成されます.

 pyproject.toml  と poetry.lock の二つのファイルができたので,
コンテナ立ち上げ時に 必要なパッケージをインストールするように, Dockerfile の更新も行います. 

FROM python:3.10-slim-buster
RUN apt-get update && apt-get install -y \
    curl \
    git

ENV PYTHONDONTWRITEBYTECODE 1 \
    PYTHONUNBUFFERED 1 \
    POETRY_VERSION=1.1.14

RUN curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python
ENV PATH="${PATH}:/root/.poetry/bin"

COPY pyproject.toml poetry.lock ./
RUN poetry config virtualenvs.create false \
    && poetry install

上の内容のDockerfileを作成できました. 
ここまでで一旦区切ろうと思います. 

次に devcontainer.json の変更を行います.

{
    "name": "Python 3.10 dev",
    "context": "..",
    "dockerFile": "Dockerfile",
    "settings": {
        "terminal.integrated.profiles.linux": {
            "zsh (login)": {
                "path": "zsh",
                "args": [
                    "-l"
                ]
            }
        },
        "python.pythonPath": "/usr/local/bin/python",
        "python.linting.enabled": true,
        "python.linting.pylintEnabled": false,
        "python.linting.flake8Enabled": true,
        "python.linting.lintOnSave": true,
        "python.formatting.provider": "black",
        "editor.formatOnSave": true
    },
    "extensions": [
        "ms-python.python",
        "kevinrose.vsc-python-indent"
    ]
}


今回はこの辺りで終わろうと思います. 
次回は動かすbot の中身を作っていこうと思います.


bot 本体のコード書いていたら使うために必要なパッケージいろいろ出てきたので,勝手に記事更新していきます。


この記事が気に入ったらサポートをしてみませんか?