Я думаю, что не понимаю. Во-первых, я создал докер-машину:
$ docker-machine create -d virtualbox dev
$ eval $(docker-machine env dev)
Затем я написал Dockerfile и docker-compose.yml:
FROM python:2.7
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/
version: '2'
services:
db:
image: postgres
web:
build: .
restart: always
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
links:
- db
Наконец, я создал и запустил изображение:
$ docker-compose build --no-cache
$ docker-compose start
Я проверил ip своей виртуальной машины
$ docker-machine ip dev
и успешно открыл сайт в моем браузере. Но когда я внес некоторые изменения в свой код, ничего не произошло. Поэтому я вошел в систему "dev":
$ docker-machine ssh dev
и я не нашел свой код! Поэтому я зашел на изображение "веб-сайта" докера:
$ docker exec -it project_web_1 bash
и был код, но он не изменился.
Для чего нужна докер-машина? В чем смысл? Почему docker не синхронизирует файлы после изменений? Похоже, что docker + docker-machine + docker-compose - это боль в a... s для локального развития: -)
Спасибо.