CentOS 7.2에서 Hubot을 Docker로 이동하려고했습니다.

5911 단어 도커CentOSHubot
블로그 2개를 모은 전재
  • CentOS 7.2에서 Docker 시작
  • CentOS 7에서 Hubot on Docker를 시도한 메모


  • 새로 계약 한 서버에 CentOS 7.2를 넣었으므로 Docker를 넣고 Hubot을 시도했습니다.
    많은 사람들이 게재하고 있지만 자신의 메모로 작성

    Docker 설치



    우선 설치이지만 CentOS 7.x에서는 기본 리포지토리에 있으므로 yum으로 설치 가능
    $ sudo yum install doker
    $ sudo systemctl start docker
    $ sudo systemctl enable docker
    Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
    

    일반 사용자가 사용할 수 있도록 설정



    그런 다음 일반 사용자 (miyamiya)가 docker를 사용할 수있게했습니다.
    $ sudo groupadd docker
    $ sudo gpasswd -a miyamiya docker
    Adding user miyamiya to group docker
    $ sudo systemctl restart docker
    

    일단 여기에서 로그 아웃하고 다시 로그인했습니다.

    덧붙여서 이 절차를 취하지 않고 일반 사용자로 실행하면 아래와 같이 에러가 된다
    $ docker pull node
    Using default tag: latest
    Post http:///var/run/docker.sock/v1.20/images/create?fromImage=node%3Alatest: dial unix /var/run/docker.sock: permission denied.
    * Are you trying to connect to a TLS-enabled daemon without TLS?
    * Is your docker daemon up and running?
    

    슬랙 팀 생성 및 API 토큰 얻기



    아니, 할애 ... (메모가 없다.

    node.js 환경 준비



    Hubot은 node.js에서 작동하므로 node.js 환경 준비
    node.js 공식 이미지 사용

    이미지 얻기
    $ docker pull node
    

    확인
    $ docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
    docker.io/node      latest              2c06219661ed        8 days ago          644.2 MB
    

    컨테이너 시작


    $ docker run --rm -it -v /etc/localtime:/etc/localtime:ro --name "bot-base" node /bin/sh
    

    옵션 설명


  • --name "bot-base"
    컨테이너 이름은 bot-base
  • node
    사용할 이미지는 node.js
  • -v/etc/localtime:/etc/localtime:ro
    localetime은 호스트와 Readonly에서 공유합니다 (일본 시간으로 만들기)
  • -it,/bin/sh
    시작 후 쉘에 들어가기
  • --rm
    떨어뜨릴 때 컨테이너 삭제

  • 컨테이너 시작 후


  • Ctrl + p, Ctrl + q로 컨테이너에서 빠져 나오기
  • exit로 빠져 나가면 컨테이너가 삭제됩니다 (--rm이 붙어 있기 때문에)

  • --rm을 사용하지 않고 컨테이너를 수동으로 삭제할 때



    시작중인 컨테이너 확인
    $ docker ps -a
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
    2f12ee8929bb        bot-base            "/bin/sh"                  5 days ago          Up 5 days                               bot-base
    

    컨테이너 정지
    $ docker stop bot-base
    bot-base
    

    컨테이너 삭제
    $ docker rm bot-base
    bot-base
    

    Hubot을 움직일 때까지 최선을 다하십시오.



    다음 일이 생길 때까지 시도하고 메모하고 다시 컨테이너 처음부터 시도를 반복했습니다.
  • Hubot Generator 설치
  • Hubot 만들기
  • Hubot 시작

  • 이것을 바탕으로 Dockerfile을 만들었습니다.

    Dockerfile
    FROM node
    MAINTAINER miyamiya
    
    RUN npm install -g yo generator-hubot
    RUN npm list -g yo generator-hubot
    RUN useradd bot
    RUN mkdir /home/bot && chown bot.bot /home/bot
    
    USER bot
    WORKDIR /home/bot
    RUN  yo hubot --owner "miyamiya" --name "bot" --description "Hubot image" --adapter slack
    
    CMD cd /home/bot/hubot; bin/hubot --adapter slack
    

    Hubot용 이미지 만들기


    $ docker build -t bot-base .
    Sending build context to Docker daemon 4.096 kB
    Step 1 : FROM node
     ---> 2c06219661ed
    Step 2 : MAINTAINER miyamiya
     ---> Using cache
     ---> 6cd0fb4b3b24
    Step 3 : RUN npm install -g yo generator-hubot
     ---> Using cache
     ---> 86f522f924ca
      :
    (省略)
      :
    npm info ok 
     ---> ef4964132a7f
    Removing intermediate container 2464b01dd061
    Step 10 : CMD bin/hubot --adapter slack
     ---> Running in 2d797a7465fd
     ---> c64050988afd
    Removing intermediate container 2d797a7465fd
    Successfully built c64050988afd
    

    만든 이미지 확인
    $ docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
    bot-base            latest              c64050988afd        18 minutes ago      698.8 MB
    docker.io/node      latest              2c06219661ed        8 days ago          644.2 MB
    

    만든 이미지 삭제 예


    $ docker rmi bot-base:latest
    Untagged: bot-base:latest
    Deleted: c64050988afde89c14b937c6c1382a984b1a676e10b0a96bb1566a98ba23621e
    Deleted: ef4964132a7f637a3862086cc64ffce53a5acd0d6a459d9a338e24ce98de96b7
    Deleted: e7cec4828b1aa52b9840fe8cf099ee43d36ed802c68936c113ecc822a0882715
    Deleted: cf0c4e3fff369b137cf68839abdc2869266cb846a9bbc247e4b517c667936d9e
    Deleted: 5a6f64bcca492dc861035ed78cb3e8916a3e584832fdd0874f2482cc637a54b4
    Deleted: f3f7ed898049035d93d38b951e012644abe8463b72efca2409aea8769c03cf26
    Deleted: fa599f410d58049a73f9ea39e86fda7c50deb5b386d98be286f21ff0effeb225
    

    또는 docker rmi c64050988afd

    만든 이미지를 사용하여 시작


    $ docker run -itd -v /etc/localtime:/etc/localtime:ro -e "HUBOT_SLACK_TOKEN=slackから取得したtoken" --name "作成するコンテナ名" bot-base /bin/sh
    

    Slack에서 말을 걸었다.



    좋은 웹페이지 즐겨찾기