SlideShare a Scribd company logo
Docker
в
development’e
Установка компонентов для работы
docker
docker-compose
docker-machine(mac/widows virtualbox+coreos)
Dockerfile
FROM ruby:2.2.0
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs
RUN mkdir /app
WORKDIR /app
ADD Gemfile /app/Gemfile
ADD Gemfile.lock /app/Gemfile.lock
RUN bundle install
ADD . /app
EXPOSE 3000
CMD ['bundle', 'exec', 'rails', 's', '-p', '3000']
docker-compose.yml
version: '2'
services:
db:
image: mysql:5.7.14
web:
build: .
command: bundle exec rails s -p 3000 -b '0.0.0.0'
volumes:
- .:/app
ports:
- "3000:3000"
depends_on:
- db
Как работа выглядит для разработчика?
Запуск сервисов
docker-compose up
Изменения в Gemfile
docker-compose build api.service.dev
Как организовать мульти домены?
docker pull jwilder/nginx-proxy
автоматический proxy-pass после запуска
DOMAINS
admin.service.dev:80
api.service.dev:80
billing.service.dev:80
lk.service.dev:80
Что дальше?
Перестать думать старыми категориями (виртуалками/ серверами)
Подходить к построению системы как связи нескольких кирпичиков
Схема web приложения
Docker в development окружение
Как работать с образами?
hub.docker.com
public repo
private repo
private images store
ОpenSource registry v2
SAAS - продукты.
docker push asigatchov/backend:v1.0.1
Как вызывать привычные команды?
source 'https://rubygems.org'
gem 'rails', '4.2.0'
touch Gemfile.lock
docker-compose run web rails new . --force --database=mysql --skip-bundle
Rails App
rake or rails c
docker-compose run web rake db:migrate
docker-compose run web rails c
Работа с базой
docker-compose run db mysqldump my_db > /home/user/db.sql
Как зайти в контейнер?
НЕТ ssh
docker exec -it name_my_container bash - если контейнер именнован
docker exec -it 82687908627 bash - найдя его в docker ps
Где используем?
proxima (development)
стажировка интернов (development)
videomore (первые шаги)
Проблемы?
- Нет!
Docker это легко?
Нехватка знаний по работе OS, сервисов и компонентов
взлом сервиса по недосмотру
Во всех проблемах начинаешь винить docker
Где найти больше информации
docs.docker.com
youtube.com - search=docker
https://telegram.me/docker_ru
http://сигачев.рф/posts/81 :-)
Планы:
Запустить CI сервис для автоматических сборок
Организовать возможность выкатки нескольких версий 5054.staging.*
swarm cluster или kubernetes (системы оркестрации)
Вопросы?
Александр Сигачев
sa@inventos.ru

More Related Content

Docker в development окружение