CentOS 7.2에서 Hubot을 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
옵션 설명
컨테이너 이름은 bot-base
사용할 이미지는 node.js
localetime은 호스트와 Readonly에서 공유합니다 (일본 시간으로 만들기)
시작 후 쉘에 들어가기
떨어뜨릴 때 컨테이너 삭제
컨테이너 시작 후
--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을 움직일 때까지 최선을 다하십시오.
다음 일이 생길 때까지 시도하고 메모하고 다시 컨테이너 처음부터 시도를 반복했습니다.
이것을 바탕으로 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에서 말을 걸었다.
Reference
이 문제에 관하여(CentOS 7.2에서 Hubot을 Docker로 이동하려고했습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/miyamiya/items/91d1bac25764a24e820e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)