fig 사용기
정창훈(@seapy)
Docker Korea
사용하게된 이유
- rorlab 오픈소스 프로젝트
- https://github.com/RORLabNew/rorla
- 커밋하기전에 로컬에서 운영환경 확인이 필요
- 운영서버 접근권한은 2명만 나머지는 없음
- MySQL, 볼륨 컨테이너등 총 4개의 컨테이너가 필요
- 복잡해서 쉽게 테스트하기 어려움
이쯤에서 다시 보는 fig 타이틀
Fast, isolated
development environments
using Docker.
내가 fig 를 사용한 목적은
커밋하기전에 로컬에서 운영환경 확인
컨테이너 구성
mysqldata
(volume container)
mysql
Rails
uploads
(volume container)
link
fig.yml
mysqldata:
image: busybox
volumes:
- /var/lib/mysql
mysql:
image: tutum/mysql
ports:
- "3306:3306"
volumes_from:
- mysqldata
environment:
MYSQL_USERNAME: admin
MYSQL_PASS: yourpassword
uploads:
image: busybox
volumes:
- /app/public/uploads
web:
build: .
volumes_from:
- uploads
ports:
- "80:80"
links:
- mysql
environment:
SECRET_KEY_BASE: secretkey
MANDRILL_USERNAME: email@email.com
MANDRILL_APIKEY: password
RORLA_HOST: localhost
RORLA_LOGENTRIES_TOKEN: key
MAILCHIMP_API_KEY: key
https://github.com/RORLabNew/rorla/blob/master/fig.yml
DB 마이그레이션 문제
$ fig run --rm web bundle exec rake db:create
$ fig run --rm web bundle exec rake db:migrate
$ fig run --rm web bundle exec rake db:seed
DB 생성, 마이그레이션, 시드 데이터 추가
fig up
???
DB 컨테이너 재생성 해버림...
fig up --no-recreate
이미 해당하는 컨테이너가 있으면 다시 생성하지 않음
잘된다!
소스수정하면
반영안됨ㅜㅜ
--no-recreate
레일스 컨테이너도 이미 있는거 쓰게되서
소스 변경한걸로 빌드 안함
fig.yml
컨테이너별로
--no-recreate
할 수 있다면 좋겠다
발표자료 만들다가...
mysqldata:
image: busybox
volumes:
- tmp/fig/mysqldata:/var/lib/mysql
mysql:
image: tutum/mysql
ports:
- "3306:3306"
volumes_from:
- mysqldata
environment:
MYSQL_USERNAME: admin
MYSQL_PASS: yourpassword
uploads:
image: busybox
volumes:
- tmp/fig/uploads:/app/public/uploads
이제 그냥 fig up
결국엔 삽질기
fig 사용기
By ChangHoon Jeong
fig 사용기
fig를 사용하면서 겪은 이야기. Docker Korea 캐주얼 토크 #2 발표. 2014년 12월 3일(수) 오후 7시
- 2,876