Blockdiage는 MacOSX에 쉽게 설치할 수 없기 때문에 그용 Docker 이미지를 제작합니다

4645 단어 Dockerblockdiag
'그래, 그럼 Docker 하자'사건.

블로그란?


MacOSX에서 Docker 사용


boot2 docker를 사용합니다.힘내라, 앵무새.이 부분의 세부 사항을 나는 좋아하지 않는다.
http://docs.docker.com/installation/mac/

실행 가능한 페이지 만들기


설치 패키지가 너무 많은지 확인하지 않았습니다.일단 Version을 이동합니다.
Dockerfile
FROM centos:centos6
MAINTAINER kozy4324 <[email protected]>
RUN yum install -y gcc zlib-devel freetype-devel tkinter python-devel python-setuptools python-imaging ipa-gothic-fonts
RUN easy_install blockdiag
RUN echo "[blockdiag]" > $HOME/.blockdiagrc
RUN echo "fontpath = /usr/share/fonts/ipa-gothic/ipag.ttf" >> $HOME/.blockdiagrc
파일이 있는 디렉토리에서 다음 명령을 실행합니다.
$ docker build -t kozy4324/blockdiag:1.0 .
만약 문제없이 실행한다면 이미지는 현지에서 완성해야 한다.
$ docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
kozy4324/blockdiag   1.0                 45f55ed1d843        12 minutes ago      440.8 MB
centos               centos6             510cf09a7986        3 weeks ago         202.6 MB

실행


문서 페이지의 견본을 복사합니다.font 설정도 확인하고 싶어 일본어를 포함했습니다.호스트 측 (또는 MacOSX 측, 귀찮음) 에서 다음 파일을 만듭니다.
a.diag
blockdiag admin {
   // Set M17N text using label property.
   A [label = "起"];
   B [label = "承"];
   C [label = "転"];
   D [label = "結"];

   A -> B -> C -> D;

   // Use M17N text directly (need to quote).
   春 -> 夏 -> 秋 -> 冬;

   // Use M17N text including symbol characters (need to quote).
   "春は 曙" -> "夏 = 夜" -> "秋.夕暮れ" -> "冬 & つとめて";
}
a.diag 가 있는 디렉터리에서 실행합니다.아무튼 이런 느낌.
$ docker run -v $(pwd):/host kozy4324/blockdiag:1.0 /bin/bash -c "cd /host; blockdiag *.diag"
이렇게 하면 출력 이하a.png.
-v 호스트 측과 용기 측이 디렉터리를 공유하고 용기 측의 이 공유된 디렉터리에서 명령을 실행합니다.호스트 옆에 있는 파일을 용기 옆에 입력해서 프로그램을 실행하는 좋은 방법이 없습니까?

제2차 이후의 집행


매번$ docker run이면 실행이 끝난 컨테이너가 쓰레기처럼 쌓여 짜증이 난다.
$ docker ps -a
CONTAINER ID        IMAGE                    COMMAND                CREATED              STATUS                      PORTS               NAMES
8686eb236bed        kozy4324/blockdiag:1.0   "/bin/bash -c 'cd /h   3 seconds ago        Exited (0) 2 seconds ago                        boring_pike         
753add1a3804        kozy4324/blockdiag:1.0   "/bin/bash -c 'cd /h   5 seconds ago        Exited (0) 4 seconds ago                        silly_bell          
71d2348acd80        kozy4324/blockdiag:1.0   "/bin/bash -c 'cd /h   About a minute ago   Exited (0) 16 seconds ago                       drunk_goldstine     
어쨌든 다 삭제해.
$ docker rm $(docker ps -a -q)
(한 번 실행된 몸으로) 용기 ID$ docker start를 지정해서 실행하면 쓰레기가 쌓이지 않을 수 있습니다.
$ docker ps -a
CONTAINER ID        IMAGE                    COMMAND                CREATED             STATUS                     PORTS               NAMES
7e2d612435dc        kozy4324/blockdiag:1.0   "/bin/bash -c 'cd /h   9 seconds ago       Exited (0) 8 seconds ago                       boring_mayer        

$ docker start 7e2d612435dc
7e2d612435dc

Docker Hub에서 미리 push

$ docker push kozy4324/blockdiag:1.0

총결산

  • 의존 관계 미스를 MacOSX에 설치하지 못할 때 Docker는

  • Docker file이 있으므로 Docker Hub도 환경 친화적
    $ docker pull kozy4324/blockdiag
    
  • 호스트 측의 파일을 입력하고 용기 측에서 프로그램을 실행하는 좋은 방법이 있습니까?
  • 좋은 웹페이지 즐겨찾기