docker+alpine+cloud9로 가장 빠르고 가벼운 IDE 환경 준비

9773 단어 alpine도커cloud9
이 기사는 Docker Advent Calendar 2018의 18 일째입니다.

소개



이 기사에서는 docker를 사용하여 서버 측에서 움직이는 멋진 IDE, cloud9를 쉽게 구축하고,
또한 alpine Linux를 사용하여 가능한 한 경량화하고 있습니다.

Cloud9를 모르는 분들을 위해



한마디로 서버 측 관리의 IDE입니다.
서버측에 정보가 있기 때문에
  • 웹으로 액세스하기 만하면 통합 개발 환경을 사용할 수 있습니다
  • PC가 변경 되더라도 동일한 환경을 유지할 수 있습니다
  • 여러 사람이 일할 수 있습니다
  • 여러 환경을 준비하면 브라우저에서 탭별로 리소스 편집을 전환합니다.

    등이 가능합니다.



    현재 AWS 환경에서 사용되는 것이 일반적입니다.
    그러나 소스 코드가 github에 게시되어 있으므로 AWS 환경 이외의 환경에서도 사용할 수 있습니다.

    결론



    이것을 실행하십시오



    command
    docker run --rm -d -v /path/to/workspace:/workspace -p 8080:8080  sshinya/alpine-cloud9
    

    자격 증명을 바꿀 때는 여기



    command
    docker run --rm -d -v /path/to/workspace:/workspace -p 8080:8080 -e USERNAME=user -e PASSWORD=pass sshinya/alpine-cloud9
    

    docker-compose라고 이런 느낌



    docker-compose.yml
    # This is sample file
    services:
        cloud9:
            image: sshinya/alpine-cloud9
            volumes:
                - /path/to/workspace:/workspace
            environment:
                USERNAME: user
                PASSWORD: pass
            ports:
                - "8080:8080"
    

    이하, 해설·구축 순서



    대상 OS



    이번, 대상이 되는 Alpine Linux는 3.7을 사용하고 있습니다.
    최신판은 3.8입니다만, 아무래도 구축에 실패해 버려 트러블 슈팅중입니다.
    (원인을 알고 계시다면 댓글을 주시면 감사하겠습니다)

    필요한 모듈



    cloud9를 움직이는 모듈은 다음을 넣습니다.
    Alpine이므로 apk add를 사용하여 넣습니다.
    (CentOS에서 말한다 yum , Ubuntu에서 말한다 apt-get )
  • bash
  • git
  • nodejs
  • make
  • gcc
  • g++
  • 파이썬
  • curl
  • wget
  • build-base
  • openssl-dev
  • apache2-utils
  • libxml2-dev
  • sshfs
  • tmux
  • supervisor

  • 기타 필요한 작업


  • cloud9의 공식 저장소에서 소스 코드를 Clone
  • 환경 구축용 스크립트도 다운로드 및 실행
  • htps : // 등 w. 기테부세 r 콘텐트 t. 이 m/c9/인 s단 l/마 s r/ㄱ k. sh

  • 마지막으로 clone 한 모듈에서 install 스크립트를 실행
  • # cloneしてくる
    git clone https://github.com/c9/core.git /c9
    
    # 公式環境構築用スクリプト実行
    curl -s -L https://raw.githubusercontent.com/c9/install/master/link.sh | bash
    
    # マウントポイント作成
    mkdir -p /workspace
    
    # インストール実行
    cd /c9
    ./scripts/install-sdk.sh
    

    Docker로 설정



    workspace 영역(마운트 포인트) 등록


    VOLUME ["/workspace"]
    WORKDIR /workspace
    

    액세스 할 포트 설정 (이번에는 우선 8080)


    EXPOSE 8080
    

    cloud9 런타임에 Basic 인증 ID/PASS 설정(기본값)


    ENV USERNAME user
    ENV PASSWORD pass
    

    최종 Dockerfile


    FROM alpine:3.7
    LABEL maintainer "shinya"
    
    RUN apk add --update --no-cache bash git nodejs make gcc g++ python curl wget build-base openssl-dev apache2-utils libxml2-dev sshfs tmux supervisor \
        && rm -f /var/cache/apk/* \
        && git clone https://github.com/c9/core.git /c9 \
        && curl -s -L https://raw.githubusercontent.com/c9/install/master/link.sh | bash \
        && mkdir -p /workspace \
        && cd /c9 \
        && ./scripts/install-sdk.sh
    
    VOLUME ["/workspace"]
    WORKDIR /workspace
    
    EXPOSE 8080
    
    ENV USERNAME user
    ENV PASSWORD pass
    
    ENTRYPOINT ["sh", "-c", "/usr/bin/node /c9/server.js -l 0.0.0.0 -p 8080 -w /workspace -a $USERNAME:$PASSWORD"]
    

    여기에 Dockerfile 넣어.
    shinya/alpine-cloud9

    그리고는 실행하면, IDE 환경이 한층 올라!

    실제 화면



    부팅에 성공하면 액세스하면 먼저 인증 화면이 나옵니다.



    인증이 지나면 기동 화면이 되어・・・・



    잠시 후 "Welcome"화면으로 전환



    그리고는, 엔지니어 영혼을 부딪치면서, 코딩할 수 있어!





    개인적으로 Go 언어를 공부하는 환경을 원했기 때문에 Go 대응 버전도 만들었습니다.
    Cloud9에서 Run 버튼을 눌러 컴파일 할 수 있습니다.

    command
    docker run --rm -d -v /path/to/workspace:/workspace -p 8080:8080  sshinya/alpine-cloud9:golang
    

    Go 언어 버전 Dockerfile 자세히



    Alpine이 Go 언어 버전으로 되어 있는 것과 환경 변수를 설정하고 있는 것이 다른 점입니다.
    FROM golang:alpine3.7
    LABEL maintainer "shinya"
    
    RUN apk add --update --no-cache bash git nodejs make gcc g++ python curl wget build-base openssl-dev apache2-utils libxml2-dev sshfs tmux supervisor \
        && rm -f /var/cache/apk/* \
        && git clone https://github.com/c9/core.git /c9 \
        && curl -s -L https://raw.githubusercontent.com/c9/install/master/link.sh | bash \
        && mkdir -p /workspace \
        && cd /c9 \
        && ./scripts/install-sdk.sh
    
    VOLUME ["/workspace"]
    WORKDIR /workspace
    
    
    # Expose ports.
    EXPOSE 8080
    
    ENV USERNAME user
    ENV PASSWORD pass
    
    ADD env /root/.bashrc 
    ADD env /root/.profile
    
    ENTRYPOINT ["sh", "-c", "/usr/bin/node /c9/server.js -l 0.0.0.0 -p 8080 -w /workspace -a $USERNAME:$PASSWORD"]
    

    env 내용
    PATH=$GOPATH/bin:/usr/local/go/bin:$PATH
    

    결론



    이제 IDE를 PC에 설치하는 시대는 끝났을지도 모릅니다.
    지금부터는 서버 사이드 IDE를 꼭 사용해보세요!

    좋은 웹페이지 즐겨찾기