Docker에 구축된 개발 환경은 VS Code에서 열립니다!

12545 단어 GoDockerVSCode
오랫동안 기대했던 원격 개발 기능이 왔다!
Introducing Remote Development for @code 🚀💻🛰️A new set of extensions that enable you to open any folder in a container, on a remote machine, or in the Windows Subsystem for Linux (WSL) and take advantage of VS Code's full feature set. #remote 👉 https://t.co/ChYGQ89Y5f — Visual Studio Code (@code) 2019년 5월 2일
여기 기사 발표Remote Development with VS Code
이 기능을 사용하면 VScode에서 다음 3개 환경에 원격 접속하여 개발할 수 있습니다.p>
  • Docker에서 작업하는 Workspace
  • SSH로 연결할 수 있는 원격 서버에서 작업하는 Workspace
  • Windows WSL에서 작업하는 Workspace

Docker 개발 환경에 연결 시도


개인이 가장 원하는 Docker 연결을 Go의 개발 환경에 추가합니다.p>

시도된 환경


  • macOS Mojave 10.14.4
  • Docker Desktop 2.0.0.3
  • Docker Engine 18.09.2
  • VS Code 1.34.0-insider

설정 VS 코드


2019/05/03에 시도해 보세요. 필요하니까Visual Studio Code - Insidersdel>

2019/06/06Visual Studio Code - Stable도 사용할 수 있습니다.p>


Insiders에

Remote - Containers 확장이 설치되어 있습니다.(발표되자마자 표시 순서가 낮아서 스크롤 찾기)



개발 저장소 구성


Quick Start로서 각 개발 환경을 Docker로 이동하는 예시를 준비하여 참고로 진행하였다p>

https://github.com/Microsoft/vscode-remote-try-go를 참고하여 Docker-compose 기반이 아니기 때문에 Docker-compose를 사용할 수 있도록 약간 변경된 것을 준비했으니 우선 그 환경을 이동해 봅시다p>

git clone https://github.com/yoskeoka/remote-dev-go

평상시라면 이 Clone 디렉터리로 이동하지만, Remote-Containers Extension에서 이 디렉터리를 엽니다.p>

를 열고 왼쪽 아래에 있는 파란색 아이콘을 클릭합니다.(Insiders를 사용하는 사람은 녹색)


선택 Remote-Containers: Open Folder in Container...p>


remote-dev-go 닫는 디렉터리 열기p>
열면 Docker-compose의build가 뛰기 때문에 잠시 기다려야 합니다p>


은(는) VS Code를 통해 Docker 내부에서 실행되는 개발 환경リモート開発環境에 연결할 수 있습니다.

정상적으로 개발할 수 있음~/.gitconfig 복제되었으므로 Git 작업도 로컬 개발 환경과 동일하게 수행할 수 있음p>

Go 코드 이동을 시도합니다.

https://github.com/Microsoft/vscode-remote-try-go 에서 대여한 server.go 를 시작하고 자동 재부팅 Makefile 을 준비했기 때문에 실행합니다p>

VSCode의 TERMINAL 옵션 카드에서 bash를 시작하고 make를 실행합니다p>


원격 개발 환경
$ make start
reflex -g '**/*.go' -s -- sh -c "make build && ./bin/server"
[00] Starting service
[00] make[1]: Entering directory '/root/workspace'
[00] go build -o bin/server server.go
[00] make[1]: Leaving directory '/root/workspace'
[00] Server listening on port  9080


실행된 프로그램은 docker-compose.yml 에 Port Forward를 설정했기 때문에 로컬 개발 환경curl 등에서도 실행할 수 있다p>


로컬 개발 환경
$ curl localhost:9080
Hello remote world!


Git 작업


공유는 Tips.gitconfig에 있기 때문에 원격 개발 환경에서 VSCode의 Git 통합 기능을 통해 조작할 수도 있고 git 명령을 통해 조작할 수도 있다p>

원격 개발 환경 설정을 변경할 때


원격 개발 환경에 연결할 때 왼쪽 아래 녹색 단추Remote Containers: Rebuild Container에서 반영 가능p>

원격 개발 환경에 다시 연결


VS 코드를 켠 상태에서 왼쪽 아래에 있는 녹색 아이콘이나 명령 팔레트에서 선택Remote-Containers: Open Folder in Container...,remote-dev-go 저장소의 디렉터리를 다시 열기p>

원격 개발 환경 완전 중지


docker-compose에서 시작되므로 docker ps 등에서 Docker Container를 제거하십시오.p>
$ docker ps
CONTAINER ID        IMAGE                         COMMAND                  CREATED             STATUS              PORTS                               NAMES
dd24fb7b0c8a        remote-dev-go_remote-dev-go   "sleep infinity"         25 minutes ago      Up 25 minutes       0.0.0.0:9080->9080/tcp              remote-dev-go_remote-dev-go_1
f9f88e005b5a        phpmyadmin/phpmyadmin         "/run.sh supervisord…"   About an hour ago   Up About an hour    9000/tcp, 0.0.0.0:8080->80/tcp      remote-dev-go_phpmyadmin_1
93a095708b76        mysql:8                       "docker-entrypoint.s…"   About an hour ago   Up About an hour    0.0.0.0:3306->3306/tcp, 33060/tcp   remote-dev-go_mysql_1

원격 개발 환경 관리


VSCode Extensions 관리


원격 개발 환경은 로컬 개발 환경과 달리 VS Code Extensions 추가 가능p>


settings.관리 json


복제.devcontainer/settings.vscode.json 내용의 기술은 원격 개발 환경.devcontainer/Dockerfile에서p>
이번에 준비한 예에서 VS코드에 GOPATH를 명시하기 위해 아래와 같이p>

.devcontainer/settings.vscode.json

{
    "go.gopath": "/go"
}


개발 명령 관리

reflex에는 코드 변경 사항을 감지하고 Go에서 개발한 서버를 자동으로 다시 로드하는 데 사용되는 설치.devcontainer/Dockerfile 명령이 설명되어 있습니다.

필요에 따라 추가Dockerfile에 사용된 명령을 설치하면 개발팀 내에서 간단하게 환경을 공유할 수 있다p>

기존 개발 용기와 공존


용기 기반 배포Dockerfile와 로컬 개발 환경에서 Nginx, MySQL 등에 대한 의존을 관리하는 경우가 많다고 생각합니다.

자신이 평소에 개발한 환경docker-compose에서도 다양한 환경을 구축했고 이 일대와 잘 공존하기 위해 원격 개발 환경의 설정을 도입했다p>
구체적으로 말하면 프로젝트 노선에 원래 있는 (이러한 구상)docker-compose.yml에 원격 개발 환경과 관련된 기술은 전혀 넣지 않고 docker-compose.yml에 원격 개발 환경을 기술한다p>


.devcontainer/docker-compose.extend.yml

version: '3'
services:
  dev:
    build: 
      context: .devcontainer
      dockerfile: Dockerfile
    volumes:
      - .:/root/workspace
      - ~/.gitconfig:/root/.gitconfig
    ports:
      - 9080:9080
    command: sleep infinity


추가 Docker Compose 설정 정보.devcontainer/docker-compose.extend.yml

.devcontainer/devcontainer.json(일부)
    "dockerComposeFile": [
        "../docker-compose.yml",
        "docker-compose.extend.yml"
    ],


와 같이 미리 작성된 일로 원격 개발 환경이 시작될 때 아래와 같이 쌍방을 잘 읽어들이기 때문에 기존의 Docker 관련 설정을 파괴할 필요가 없다p>


원격 개발 환경이 시작될 때 실행되는docker-compose
docker-compose -f /元々の/docker-compose.yml -f /リモート開発環境用の/docker-compose.extend.yml up -d --build


총결산


이렇게 하면 로컬에서 개발 환경을 구축하지 않아도 Docker와 VScode를 설치하면 개발할 수 있습니다.

VSCode는 Code Server로 실행되며 브라우저에서 작동할 수도 있습니다. 조합하면 Docker와 브라우저가 있으면 어떤 개발 환경에서도 로컬 환경을 오염시키지 않고 시작할 수 있습니다.p>


또 발표 당일부터문서Examples의 충실도가 대단했다.

이 개발 자원이 많으면 VS 코드의 장점이라고 생각해요.p>

참고 자료



원격 서버에서 SSH를 사용할 때의 기사도 있습니다.p>

좋은 웹페이지 즐겨찾기