vscodeと"devコンテナ


今日はビジュアルスタジオコードを試してみました.私はまだそれの周りに私の方法を発見していないにもかかわらず、私は本当に私のワークフローのためのゲームチェンジャーことができる拡張子を発見!🧨 それをあなたと共有する考え.

「リモートコンテナ」拡張
簡単に言えば、この拡張モジュールを使用すると、開発環境としてDockerコンテナを使用できます.🤯
すべてはあなたのコード、SDK、依存関係、OSパッケージです.すべて!
私は長い間これのような何かを楽しみにしていました、そして、私は言わなければなりません.

「devコンテナ」を使う利点はいくつかあります.

  • 互換性:あなたのコードは、あなたの開発機械から生産までずっと全く同じ環境で動きます

  • オートメーションと速度:新しいdev環境の作成は完全に自動化されます.あなたは秒単位で壊れた環境(またはオンボードの新しい開発者)を復元することができます

  • 広報レビュー:あなたの仕事を台無しにせずに、新しい、隔離されたコンテナの広報からコードをチェックアウトすることができます
  • それはきれいです!私は、私がもう見つけることさえできない私のラップトップで小さなプロジェクトのトンを持っています.devコンテナを使えば、プロジェクトをチェックアウトできます.

  • どうやって最初のdevコンテナを作ったの
    私は今日、私がどのようにして私の最初の「devコンテナ」を作成したかを段階的に示すつもりです.
    私はこのhacktoberfestと協力するプロジェクトの一つをつかんだ.これはDjangoアプリケーションですので、これはpython 3で動作するように開発環境を必要とします.
    最初に、VSCode市場から「リモートコンテナ」拡張をインストールしてください

    第二、プレスF1 VSCodeメニューを開き、「開発コンテナ設定ファイルを追加」を検索します.

    次に、設定ファイルを作成する方法をvscodeに伝える必要があります.VSCodeは、最も人気のある言語のための定義済みの設定ファイルを提供します😊


    次に、使用するPythonのマイナーバージョンを選択するように求められます.また、コンテナにnodejsをインストールしたい場合は🤔, でもこの点は気にしない.
    VSCode should have created a new folder for you called .devcontainer 2つのファイルが生成され、
  • エーDockerfile : 新しいdev環境のコンテナ定義です
  • エーdevcontainer.json ファイル:開発コンテナビルドプロセスをさらにカスタマイズするために使用できる設定ファイル

  • カスタマイズ.devcontainer/Dockerfiledockerfileを見てみましょう.
    # See here for image contents: https://github.com/microsoft/vscode-dev-containers/tree/v0.140.1/containers/python-3/.devcontainer/base.Dockerfile
    
    # [Choice] Python version: 3, 3.8, 3.7, 3.6
    ARG VARIANT="3"
    FROM mcr.microsoft.com/vscode/devcontainers/python:0-${VARIANT}
    
    # [Option] Install Node.js
    ARG INSTALL_NODE="true"
    ARG NODE_VERSION="lts/*"
    RUN if [ "${INSTALL_NODE}" = "true" ]; then su vscode -c "source /usr/local/share/nvm/nvm.sh && nvm install ${NODE_VERSION} 2>&1"; fi
    
    # [Optional] If your pip requirements rarely change, uncomment this section to add them to the image.
    # COPY requirements.txt /tmp/pip-tmp/
    # RUN pip3 --disable-pip-version-check --no-cache-dir install -r /tmp/pip-tmp/requirements.txt \
    #    && rm -rf /tmp/pip-tmp
    
    # [Optional] Uncomment this section to install additional OS packages.
    # RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
    #     && apt-get -y install --no-install-recommends <your-package-list-here>
    
    # [Optional] Uncomment this line to install global node packages.
    # RUN su vscode -c "source /usr/local/share/nvm/nvm.sh && npm install -g <your-package-here>" 2>&1
    
    ここでしたいことは、このコンテナイメージがプロジェクトを実行するために必要なものすべてを確認することです.この場合、必要なPIPパッケージをインストールする必要がありますrequirements.txt ファイル.
    生成されたDockerFileは既にそれを行う方法を提案しています.これは私の最後のdockerfileになります.
    # [Choice] Python version: 3, 3.8, 3.7, 3.6
    ARG VARIANT="3"
    FROM mcr.microsoft.com/vscode/devcontainers/python:0-${VARIANT}
    
    # [Option] Install Node.js
    ARG INSTALL_NODE="true"
    ARG NODE_VERSION="lts/*"
    RUN if [ "${INSTALL_NODE}" = "true" ]; then su vscode -c "source /usr/local/share/nvm/nvm.sh && nvm install ${NODE_VERSION} 2>&1"; fi
    
    COPY requirements.txt /tmp/pip-tmp/
    RUN pip3 --disable-pip-version-check --no-cache-dir install -r /tmp/pip-tmp/requirements.txt \
       && rm -rf /tmp/pip-tmp
    

    構成.devcontainer/devcontainer.jsonvscodeによって生成された2番目のファイルはdevcontainer.json . これにはvscodeの追加情報が含まれ、開発コンテナを作成します.ここでどのように設定します.
    最初のセクションはどのようにコンテナをビルドしたいかを定義しています.デフォルト値ですべてを残しました
            "name": "Python 3",
        "build": {
            "dockerfile": "Dockerfile",
            "context": "..",
            "args": { 
                // Update 'VARIANT' to pick a Python version: 3, 3.6, 3.7, 3.8 
                "VARIANT": "3.8",
                // Options
                "INSTALL_NODE": "false",
                "NODE_VERSION": "lts/*"
            }
        },
    
    私のJJANOのアプリケーションはhttp://127.0.0.1:8000 , 私はホストマシンからポート8000をコンテナに転送する必要があります.
        // Use 'forwardPorts' to make a list of ports inside the container available locally.
        "forwardPorts": [8000],
    
    
    すべての利用可能なオプションについて調べるために、ファイルを通して読む時間をお勧めします.
    // For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:
    // https://github.com/microsoft/vscode-dev-containers/tree/v0.140.1/containers/python-3
    {
        "name": "Python 3",
        "build": {
            "dockerfile": "Dockerfile",
            "context": "..",
            "args": { 
                // Update 'VARIANT' to pick a Python version: 3, 3.6, 3.7, 3.8 
                "VARIANT": "3.8",
                // Options
                "INSTALL_NODE": "false",
                "NODE_VERSION": "lts/*"
            }
        },
    
        // Set *default* container specific settings.json values on container create.
        "settings": { 
            "terminal.integrated.shell.linux": "/bin/bash",
            "python.pythonPath": "/usr/local/bin/python",
            "python.linting.enabled": true,
            "python.linting.pylintEnabled": true,
            "python.formatting.autopep8Path": "/usr/local/py-utils/bin/autopep8",
            "python.formatting.blackPath": "/usr/local/py-utils/bin/black",
            "python.formatting.yapfPath": "/usr/local/py-utils/bin/yapf",
            "python.linting.banditPath": "/usr/local/py-utils/bin/bandit",
            "python.linting.flake8Path": "/usr/local/py-utils/bin/flake8",
            "python.linting.mypyPath": "/usr/local/py-utils/bin/mypy",
            "python.linting.pycodestylePath": "/usr/local/py-utils/bin/pycodestyle",
            "python.linting.pydocstylePath": "/usr/local/py-utils/bin/pydocstyle",
            "python.linting.pylintPath": "/usr/local/py-utils/bin/pylint"
        },
    
        // Add the IDs of extensions you want installed when the container is created.
        "extensions": [
            "ms-python.python"
        ],
    
        // Use 'forwardPorts' to make a list of ports inside the container available locally.
        "forwardPorts": [8000],
    
        // Use 'postCreateCommand' to run commands after the container is created.
        // "postCreateCommand": "pip3 install --user -r requirements.txt",
    
        // Uncomment to connect as a non-root user. See https://aka.ms/vscode-remote/containers/non-root.
        // "remoteUser": "vscode"
    }
    
    

    プロジェクトをdevコンテナとして開く
    今は万事準備万端だF1 再び、“コンテナ内の再オープン”オプションを検索します.

    VSCodeは、新しい開発コンテナを作成しますDockerfile and devcontainer.json 作成しました.
    あなたのワークスペースのプロジェクトファイルは現在、コンテナとVSCodeと同期され、直接それを編集します.
    あなたは、VSCodeは、私たちのPython 3 devコンテナに接続されていないことを示す画面の左側にある緑色のストリップに気づくでしょう.

    そして、我々の真新しい環境をテストするために、アプリケーションを実行しましょうpython manage.py runserver
    ああ!アプリケーションは現在、ポート上で実行されます8000 そして、localhost !


    今日はDEVコンテナの経験です.
    私は今までこのvscode拡張に感心しています、そして、私は毎日それを使用することによってそれについてより多くを学ぶことを楽しみにしています.
    このイントロがvscodeのdevコンテナを始めるために他の誰かを刺激することを願っています.
    最後まで読んでくれてありがとう!そして、あなたがこのようなより多くの内容を見たいならば、私に続くのを忘れないでください!

  • YouTube 🎬