GithubHelp home page GithubHelp logo

twilightuncle / golangdevenv-for-wsl2 Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 13 KB

WSL2の上にGO言語用の開発環境を構築する

License: MIT License

Dockerfile 38.35% PowerShell 49.59% Shell 12.06%

golangdevenv-for-wsl2's Introduction

GolangDevEnv-for-WSL2

WindowsにおいてWSL2の上にDockerを用いてGolangの開発環境を構築

環境

Windos10, Windows11が対象
WSL2(最新), Docker Desktopがインストールされていること

使用方法

1.ソースコードダウンロード

cd path/to/dir
git clone git@github.com:TwilightUncle/GolangDevEnv-for-WSL2.git

2.設定ファイルの展開と変更

variables.ps1

variables.ps1.sampleを複製してvariables.ps1を作成する。
上記で作成したファイルの変数を必要に応じて変更する。

  • $DISTRO_NAME - WSLに登録されるディストリビューション名。ここに指定した名称でwsl -d <$DISTRO_NAME>を実行することで構築した環境にログイン可能
  • $GO_VERSION - 開発環境で使用するGOバージョンを指定
  • $TIME_ZONE - タイムゾーン
  • $VSCODE_BIN_PATH - ホストにインストール済みのvscodeバイナリのパスを指定する。構築した環境からのドライブ名はC:/であれば/c/と指定する
  • $GIT_BIN_PATH - ホストにインストール済みのgitバイナリのパスを指定する。※ホストのgitの設定をそのまま使いまわすため
  • $DEFAULT_USER - 開発環境へ接続した際のデフォルトユーザー名
  • $DEFAULT_USER_PASSWORD - 開発環境のデフォルトユーザーのパスワード

server_files/configure/wsl.conf

wsl.conf.sampleを複製してwsl.confを作成する。
各設定項目についてはマイクロソフトのリファレンスを参照

server_files/configure/initialize.sh

initialize.sh.sampleを複製してinitialize.shを作成する。
上記で作成したファイルには、アプリケーションソースの展開等、開発環境上で最初に一度だけ行いたい処理を記述する。

3.構築、ログイン等

以下のコマンドで開発環境を構築する
Dockerは起動中であること

cd /path/to/PhpEnvBuild-for-WSL2

# 構築
./build.ps1

# いらない場合、Dockerのキャッシュを削除する
docker builder prune

以下、ログイン及び構築した環境の破棄
Dockerは起動不要

# 開発環境へログイン
wsl -d <variables.ps1のDISTRO_NAMEに指定した名称>

# いらなくなった開発環境を削除
wsl --unregister <variables.ps1のDISTRO_NAMEに指定した名称>

4.接続元のWindowsとWSL上でのSSH秘密鍵の共有

Gitリモートリポジトリへの接続等を行う等、SSH関連の設定しなければいけない場合がある。
しかし、環境設定の変更などで一旦WSLに構築済みのdistroを破棄し、再度構築すると、SSH関連の設定を構築の度に実施しないといけなくなってしまうため手間である。
そこで、本項では既にWindows上でもGitを用いた開発を行っており、SSH鍵を作成済みであるものとして、以下にWSLに構築した開発環境上でもWindows上に存在する秘密鍵をWSLで流用できるように設定するコマンド手順を記載する。
※コマンドの実行はWSL上に構築済みの開発環境にログインして行う。

chmod 600 /mnt/c/Users/<ユーザー名>/.ssh/<秘密鍵のファイル名>
eval `ssh-agent`
ssh-add /mnt/c/Users/<ユーザー名>/.ssh/<秘密鍵のファイル名>

golangdevenv-for-wsl2's People

Contributors

twilightuncle avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.