Vagrant의 Lubuntu에서 VSCode + Docker 환경을 만들고 싶습니다 ~ VSCode + Docker ~

마지막까지 기사


  • Lubuntu 구축편
  • Vagrant Box화

  • 대상인 사람



    VisualStadio Code의 Remote-Container를 사용하고 싶지만, Windows10 Home인 사람.

    경위



    Remote-Container를 사용하려고 하면 DockerToolbox는 지원하지 않았고,
    그렇다고 해서, Pro로 해도 VirtualBox를 사용할 수 없게 되는 것 같기 때문에, 그럼, 이제 개발용의 환경 만들까.

    전제


  • VirtualBox 포함
  • Vagrant 포함
  • OS가 Windows10

  • Docker 넣기



    공식 설치 절차 가 있기 때문에 그것을 참고로.

    마지막 Vagrant 시작



    Powershell로 시작
    # 適当なディレクトリ作成しておく
    # Vagrantfile作成
    > vagrant init lubuntu-19.04-x86_64
    
    # 立ち上げ
    > vagrant up
    
    #  SSHで入っておく
    > vagrant ssh
    ...
    vagrant@vagrant-pc:~$
    

    공식대로


    # 注意:めっちゃ文字化けするけど、テキストにコピペするとちゃんと出るので、
    # ビビらず行こう。気になるようなら、表示を英語にするとか。
    
    # アップデートしておく
    $ sudo apt-get update
    
    # パッケージをインストールして、aptがHTTPS経由でリポジトリを使用できるように。
    $ sudo apt-get install \
    >     apt-transport-https \
    >     ca-certificates \
    >     curl \
    >     gnupg-agent \
    >     software-properties-common
    
    # Dockerの公式GPG鍵を追加
    $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    OK
    
    # Ubuntuのコードネームを確認する
    # Linux Mintだと公式?のものが出ないらしい
    # その時は元になったUbuntuのものに変更する必要がある
    $ lsb_release -cs
    disco
    # https://download.docker.com/linux/ubuntu/dists/
    # ここにある名前ならOK。discoはちゃんとある。
    
    # stable版を入れる
    $ sudo add-apt-repository \
    >    "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
    >    $(lsb_release -cs) \
    >    stable"
    
    # Dockerリポジトリを更新
    $ sudo apt-get update
    
    # インストール
    $ sudo  apt-get install docker-ce docker-ce-cli containerd.io
    
    # 起動確認
    $  sudo docker run hello-world
    Unable to find image 'hello-world:latest' locally
    latest: Pulling from library/hello-world
    1b930d010525: Pull complete
    Digest: sha256:6540fc08ee6e6b7b63468dc3317e3303aae178cb8a45ed3123180328bcc1d20f
    Status: Downloaded newer image for hello-world:latest
    
    Hello from Docker!
    This message shows that your installation appears to be working correctly.
    
    To generate this message, Docker took the following steps:
     1. The Docker client contacted the Docker daemon.
     2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
        (amd64)
     3. The Docker daemon created a new container from that image which runs the
        executable that produces the output you are currently reading.
     4. The Docker daemon streamed that output to the Docker client, which sent it
        to your terminal.
    
    To try something more ambitious, you can run an Ubuntu container with:
     $ docker run -it ubuntu bash
    
    Share images, automate workflows, and more with a free Docker ID:
     https://hub.docker.com/
    
    For more examples and ideas, visit:
     https://docs.docker.com/get-started/
    
    # そういえば勝手にService動いてるので、確認
    $ sudo systemctl status docker
    ● docker.service - Docker Application Container Engine
       Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
       Active: active (running) since Sat 2019-08-10 22:22:10 JST; 2min 2s ago
         Docs: https://docs.docker.com
     Main PID: 3622 (dockerd)
        Tasks: 10
       Memory: 50.9M
       CGroup: /system.slice/docker.service
               └─3622 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
    
    # enabledになってるので、OS立ち上げ時に自動起動までしてくれる
    # ついでにDockerのバージョンも見ておく。
    $ sudo docker -v
    Docker version 19.03.1, build 74b1e89
    

    무서워서 스냅샷을 찍어



    스냅 샷을 찍을거야.
    $ exit
    
    # とりあえず、docker-installで。この先まずったらこれに戻す。
    > vagrant snapshot save docker-install
    

    VSCode 넣기



    Visual Studio Code 설치



    VirtualBox의 가상 데스크톱에서 설치합니다.

    다운로드 페이지 으로 이동하여 .deb (가운데 녀석)를 선택하고 다운로드하십시오.


    다운로드된 패키지를 더블 클릭하여 설치


    메인 메뉴에서 "액세서리> Visual Studio Code"가 있는지 확인.



    일본어화



    Extensions에서 검색창에 "Japanese"를 입력합니다.
    "Japanese Language Pack for Visual..."설치


    Remote-Containers



    docker 그룹에 vagrant 추가



    vagrant 사용자가 Docker 명령을 사용할 수 있도록 다음 명령으로 Docker 그룹에 추가

    docker 그룹에 vagrant 추가
    $ sudo usermod -aG docker vagrant
    

    추가 후 일단 로그아웃한 후 다시 입력(중요)

    docker 명령이 sudo없이 칠 수 있는지 확인
    $ docker ps
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
    

    Remote-Containers 넣기



    Extensions에서 검색 창에 "remote container"를 입력합니다.
    Remote-Containers 설치



    샘플 사용



    ① 아이콘을 클릭하고 "Remote-Containers: Try a Sample..."을 선택합니다.


    여기에서는 Go를 선택.
    (멋대로 github에서 코드가 떨어진다고 생각하면 페이지로 날아 버렸다..)
    어쩔 수 없기 때문에 Clone 해 온다

    샘플을 떨어뜨리다
    $ mkdir <なんか適当なディレクトリ>
    $ cd $_
    $ git clone https://github.com/microsoft/vscode-remote-try-go.git
    

    떨어뜨린 "vscode-remote-try-go"를 VSCode에서 열고 방금전의 ①의 아이콘을 클릭하고 "Remote-Containers: Open Folder in Conatainer"를 선택.
    이 때도 "vscode-remote-try-go"를 선택.

    컨테이너를 떨어 뜨리거나 상당히 시간이 걸립니다.

    끝나면, F5 키로 디버그 모드 기동.http://localhost:9000 에서 브라우저를 통해 액세스하면 "Hello,"가 표시됩니다.

    끝.



    go 환경이 없어도 움직이고 필요한 것이 있으면 Dockerfile에 쓰면 반영된다.
    파이썬의 virtualenv 감각으로 환경을 만들 수있는 것이 좋다.
    (Go에서도 가상 환경이라든지 만들 수 있을지도 모르지만..)

    좋은 웹페이지 즐겨찾기