Docker에 구축된 개발 환경은 VS Code에서 열립니다!
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>
{
"go.gopath": "/go"
}
개발 명령 관리
reflex
에는 코드 변경 사항을 감지하고 Go에서 개발한 서버를 자동으로 다시 로드하는 데 사용되는 설치.devcontainer/Dockerfile
명령이 설명되어 있습니다.필요에 따라 추가
Dockerfile
에 사용된 명령을 설치하면 개발팀 내에서 간단하게 환경을 공유할 수 있다p>기존 개발 용기와 공존
용기 기반 배포Dockerfile
와 로컬 개발 환경에서 Nginx, MySQL 등에 대한 의존을 관리하는 경우가 많다고 생각합니다.
자신이 평소에 개발한 환경docker-compose
에서도 다양한 환경을 구축했고 이 일대와 잘 공존하기 위해 원격 개발 환경의 설정을 도입했다p>
구체적으로 말하면 프로젝트 노선에 원래 있는 (이러한 구상)docker-compose.yml
에 원격 개발 환경과 관련된 기술은 전혀 넣지 않고 docker-compose.yml
에 원격 개발 환경을 기술한다p>
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
"dockerComposeFile": [
"../docker-compose.yml",
"docker-compose.extend.yml"
],
와 같이 미리 작성된 일로 원격 개발 환경이 시작될 때 아래와 같이 쌍방을 잘 읽어들이기 때문에 기존의 Docker 관련 설정을 파괴할 필요가 없다p>
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>
Reference
이 문제에 관하여(Docker에 구축된 개발 환경은 VS Code에서 열립니다!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yoskeoka/items/01c52c069123e0298660텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)