갤럭시에 도구를 설치하고 공개하기 전의 절차

8095 단어 PlanemoGalaxy
갤럭시에 도구를 설치하고 공개하기 전의 절차
  • 도구의 제작(Python, Perl, R, bash...)
  • 도구 테스트
  • 갤럭시에 포함된 인터페론 만들기
  • XML을 통한 인터페론 설명
  • 생성 도구
    도구 생성
    도구 테스트
    Docker를 이용하여planeemo 환경 구축
    docker를 이용하여 docker에서 docker를 사용할 수 있는planeemo 환경을 구축합니다.
    docker image에 사용manabuishii/docker-planemo:0.55.0.
    시작할 때 호스트와 용기에서 공유docker.sock하고 지정--privileged=true함으로써 Docker 용기 내부에서 호스트 측의 Docker daemon에 접근하여 호스트에서 Docker 용기 내부에서 지정한 Docker 용기를 조작할 수 있습니다.
  • 9090 포트는 Planeemo의 갤럭시 액세스 포트 번호
  • 입니다.
  • 호스트의 현재 디렉터리를 용기에 있는 '/opt/galaxy/tools' 에 마운트하여 호스트에서 도구 편집을 실행할 수 있도록 합니다
  • 직접 입구점/bin/bash을 지정하여 Docker 용기를 시작하는 케이스
  • > docker run --entrypoint /bin/bash --rm --privileged=true -p 8010:80 -p 9090:9090 -v /var/run/docker.sock:/var/run/docker.sock -v `pwd`:/opt/galaxy/tools -i -t manabuishii/docker-planemo:0.55.0
    
    상기 선택 사항으로 시작하면 호스트의 Docker (sibling docker) 가 Docker 용기 내부에서 시작할 수 있도록 docker를 용기 내부로 가져옵니다.
    # apt-get update -y
    # apt-get install -y \
         apt-transport-https \
         ca-certificates \
         curl \
         gnupg2 \
         software-properties-common
    # curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
    # add-apt-repository \
       "deb [arch=amd64] https://download.docker.com/linux/debian \
       $(lsb_release -cs) \
       stable"
    # apt-get update
    # apt-get install -y docker-ce
    
    위 Docker Community Edition을 Debian-jessie로 가져오는 부분은 https://docs.docker.com/install/linux/docker-ce/debian/#set-up-the-repository에 기재된 내용을 기반으로 합니다.
    Docker 가져오기에 성공했기 때문에 Docker 내부에서 Docker를 사용할 수 있는지 확인합니다.
    # docker run hello-world
    Unable to find image 'hello-world:latest' locally
    latest: Pulling from library/hello-world
    d1725b59e92d: Pull complete 
    Digest: sha256:0add3ace90ecb4adbf7777e9aacf18357296e799f81cabc9fde470971e499788
    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/
    
    컨테이너 내부에서 Docker의 작업 상태를 확인합니다.
    # docker ps -a
    CONTAINER ID        IMAGE                               COMMAND             CREATED             STATUS                         PORTS                                          NAMES
    ef30e11f8cc4        hello-world                         "/hello"            About an hour ago   Exited (0) About an hour ago                                                  objective_hugle
    7e8167ad25ef        manabuishii/docker-planemo:0.55.0   "/bin/bash"         About an hour ago   Up About an hour               0.0.0.0:9090->9090/tcp, 0.0.0.0:8010->80/tcp   jovial_poincare
    
    인산염에서 실행되는 자체 Docker 프로세스도 표시됩니다.
    호스트에서 확인해 보세요.호스트에서 다른 Terminal을 열어 실행합니다docker ps -a.
    $ docker ps -a
    CONTAINER ID        IMAGE                               COMMAND             CREATED             STATUS                         PORTS                                          NAMES
    ef30e11f8cc4        hello-world                         "/hello"            About an hour ago   Exited (0) About an hour ago                                                  objective_hugle
    7e8167ad25ef        manabuishii/docker-planemo:0.55.0   "/bin/bash"         About an hour ago   Up About an hour               0.0.0.0:9090->9090/tcp, 0.0.0.0:8010->80/tcp   jovial_poincare
    
    동일한 상태가 표시된 것을 알 수 있다.
    Docker 컨테이너 내에서 다른 Docker 컨테이너를 실행할 때 호스트에서 컨테이너를 만들고 호스트에서 실행하는지 확인할 수 있습니다.
    Planeemo의 실행
    이렇게 되면 최신 플랜지모의 이용 환경을 이용할 수 있기 때문에 실제 플랜지모를 활용해 보자.
    # cd /opt/galaxy/tools/
    
    # planemo project_init --template=demo mytools; cd mytools
    # planemo test ./randomlines.xml 
    
    planemo test에서는 갤럭시 서버를 다운로드하고 실행하기 때문에 처음 시작할 때 상당한 시간이 걸린다.
    All 2 test(s) executed passed.
    random_lines1[0]: passed
    random_lines1[1]: passed
    
    간단한 테스트라도 갤럭시 서버 프로세스를 시작해 테스트를 수행하기 위해서는 상당한 시간이 걸린다.
    또 두 번째 이후에는 갤럭시 설치 과정이 필요 없어 시간이 단축됐지만, 그래도 30초가량 소요됐다.
    > time planemo test randomlines.xml
    ...
    All 2 test(s) executed passed.
    random_lines1[0]: passed
    random_lines1[1]: passed
    
    real    0m35.000s
    user    0m21.470s
    sys 0m4.270s
    
    테스트 통과를 확인한 후 브라우저로 인터페론을 확인합니다.
    > planemo serve --host=0.0.0.0 ./randomlines.xml 
    
    브라우저로 접근localhost:9090하면 Galaxy/Configured by Planemo한 갤럭시가 시작되고 있음을 알 수 있다.

    왼쪽toolSelect random lines from a file Tool이 표시되고 해당 Tool을 클릭하면 다음과 같은 화면이 표시됩니다.

    이렇게 되면 플랜에이모의 환경이 정확하게 구축되었음을 확인할 수 있다.
    다음에는 이 상태에서 Docker 컨테이너를 저장하는 방법에 접촉합니다.

    좋은 웹페이지 즐겨찾기