Python, Node.js, Go, Rust, Ruby, Java, LaTeXの開発環境をDocker+VSCodeで構築した

作成: 2021年06月03日

更新: 2022年02月10日

Remote Containers拡張

VSCodeのRemote Contaiers拡張を入れることによってさまざまな言語の開発環境をVSCodeとDockerを用いて簡単に作れる.

これを用いていろいろな言語のDockerfile, github actionsのymlファイル, サンプルファイル,テスト環境,VSCode拡張機能などをまとめたTemplate Repositoryを作りました(随時更新,改良予定).

Template Repositoryとすることで各言語の開発環境をfirst commitとして簡単に作成できるようになっています.(参考: テンプレートリポジトリを作成する - GitHub Docs)

Python, LaTeXに関してはリポジトリの内容について以下で詳しく書いています.

Docker+VSCodeを用いたPythonの開発環境構築

pLaTeX, pdfLaTeX両対応のLaTeXのDocker環境 on VSCode

注意点

WindowsでWSL2経由でDockerをインストールした場合WSL以下のディレクトリにリポジトリを置かないとインストール速度が落ちたりHot reloadが機能しなかったりするので注意!(参考: Docker Desktop on WSL2: The Problem with Mixing File Systems | by Manfred Lange | Level Up Coding)

またMacのDocker for Macは遅いので何らかの工夫が必要(参考: docker for macのファイルioが遅い問題に終止符を打つ)

いずれも特にNode.js環境で顕著

VSCode のインストール

Download Visual Studio Code - Mac, Linux, Windows

Dockerのインストール(Windows)

WSL2とDockerの導入

Dockerのインストール(Mac)

Install Docker Desktop on Mac | Docker Documentation

各Template Repository 概要

Language Repository Linter Formatter Test CI
Python python-container-template flake8 autopep8 pytest Lint, Test
Node.js node-container-template eslint Prettier None Lint
Go go-container-template staticcheck Go extension testing(Default) Lint, Test
Rust rust-container-template rustc(default) rustfmt Default Lint, Test, Build
Ruby ruby-container-template rubocop rubocop None Lint
Java java-container-template None Language Support for Java(TM) by Red Hat - Visual Studio Marketplace None None
LaTeX latex-container-template latex-workshop extension latex-workshop extension None None