SharePoint Framework 개발 환경을 Docker에 구축(Linux 기반)

지난번 , Nano Server 이미지에서 SharePoint Framework (SPfx) 개발 환경을 구축했지만 프로젝트를 만들 때 컨테이너가 중단되고 응답이 사라지는 경우가 많기 때문에 Linux (Debian) ) 기반 컨테이너를 사용하기로 결정했습니다.

바쁜 사람을 위한 (재게시)



waldekm 씨가 Docker Hub에서 이미지를 공개하고 있기 때문에 그것을 사용하는 것이 쉽습니다.

Docker Hub - waldekm/spfx

In the command line (on macOS):cd [your project]docker run -h spfx -it --rm --name ${PWD##*/} -v $PWD:/usr/app/spfx -p 5432:5432 -p 4321:4321 -p 35729:35729 waldekm/spfx
In the command line (on Windows, assuming your project is located at c:\projects\spfx-helloworld):cd c:\projects\spfx-helloworlddocker run -h spfx -it --rm --name spfx-helloworld -v /c/projects/spfx-helloworld:/usr/app/spfx -p 5432:5432 -p 4321:4321 -p 35729:35729 waldekm/spfx

운영 환경



이 절차는 다음 환경에서 확인합니다.
- Windows 10 Pro Insider Preview(Build 15055)
- 도커 버전 17.03.0-ce

흐름



Nano Server 때는 일단 Server Core의 이미지를 만들고 나서 데이터 카피라든지 하고 있었습니다만, Linux 베이스라면 한 번에 작성할 수 있습니다.
  • Linux Containers로 전환
  • Node.js 이미지에 필요한 모듈 설치

  • 0. Linux Containers로 전환



    Docker가 Windows Containers에서 실행 중이면 Linux Containers로 모드를 전환합니다.


    1. Node.js 이미지에 필요한 모듈 설치



    데비안 기반의 Node.js 이미지는 Docker Hub에 게시되어 있으므로 이미지를 기반으로 이미지를 만듭니다. Dockerfile은 다음.

    Dockerfile
    FROM node:6.10.0
    
    EXPOSE 5432 4321 35729
    
    RUN apt-get -yq update && \
        apt-get -yq install git sudo && \
        apt-get clean && rm -rf /var/lib/apt/lists/*
    
    RUN adduser --disabled-password --gecos '' spfx && \
        adduser spfx sudo && \
        echo "%sudo ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
    
    ENV HOME /home/spfx
    
    RUN npm install -g yo gulp gulp-save
    RUN npm install -g @microsoft/[email protected]
    RUN chown -R spfx:spfx /home/spfx/
    
    RUN mkdir /app && chown spfx:spfx /app
    WORKDIR /app
    
    USER spfx
    
    CMD /bin/bash
    

    컨테이너의 루트 사용자라면 권한 문제로 프로젝트를 만들 때 파일을 만들 수 없었기 때문에 spfx라는 사용자를 만들어 홈 디렉토리 아래에 Yeoman을 설치했습니다. 또, npm install -g npm 를 실시하면 그 후의 npm 커멘드를 사용할 수 없게 되므로, 실시하지 않게 하고 있습니다.

    또,/app라고 하는 디렉토리입니다만, 이 아래에 프로젝트를 만들어 가는 것을 상정해 만들고 있습니다. 컨테이너가 시작될 때/app에 호스트 디렉토리를 마운트하는 이미지입니다.
    그리고 기동시에는 bash를 디폴트로 기동시키고 있습니다.

    위의 Dockerfile을 사용하여 빌드하고 이미지 작성이 끝납니다.docker build -t spfx:1.0.0 .

    프로젝트 만들기



    만든 이미지를 사용하여 SharePoint Framework 프로젝트를 만들 수 있는지 확인합니다.

    컨테이너를 시작합니다.docker run -it --rm spfx:1.0.0 bash
    Hello World를 만들어 보겠습니다.
    mkdir helloworld
    cd helloworld
    yo @microsoft/sharepoint
    

    무사히 프로젝트를 만들 수있었습니다.


    실제로 프로젝트의 개발이나 디버깅에 대해서는 다시 쓰고 싶습니다.



    기본 데비안 버전은 8.7과 같습니다.


    또한 이미지 크기는 785MB로 Nano Server의 1.03GB보다 훨씬 작습니다.

    좋은 웹페이지 즐겨찾기