Альтернативой Докер-композе, в Go (https://github.com/michaelsauter/crane), давайте вы создаете contianer группы - в том числе переопределяя по умолчанию, чтобы вы могли игнорировать свои контейнеры данных при перестройке своего приложения.
Учитывая у вас есть "crane.yaml" со следующими контейнерами и группами:
containers:
my-app:
...
my-data1:
...
my-data2:
...
groups:
default:
- "my-app"
data:
- "my-data1"
- "my-data2"
Вы можете построить свои контейнеры данных сразу:
# create your data-only containers (safe to run several times)
crane provision data # needed when building from Dockerfile
crane create data
# build/start your app.
crane lift -r # similar to docker-compose build && docker compose up
# Force re-create off your data-only containers...
crane create --recreate data
PS! В отличие от docker-compose, даже если вы строите из Dockerfile, вы ДОЛЖНЫ указать «образ» - когда не потянув, это имя докера даст изображение локально! Также обратите внимание, что имена контейнеров являются глобальными и не имеют префикса имени папки так, как они находятся в компоновке докеров.
Обратите внимание, что есть кратковременный крафт с краном: он просто игнорирует неправильные или неправильно написанные поля! Это затрудняет отладку докеры-составителя yaml.
«До тех пор, пока вы не« docker rm »: это моя текущая проблема, кстати: что произойдет, когда вы используете свой контейнер (но не том): как запустить * новый * объем данных контейнер, и по-прежнему он ссылается на ваш старый (теперь многожильный) том? – VonC
Вы должны выяснить, где это. Если вы запустите 'docker inspect -f {{.Volumes}} CONTAINER', вы увидите каталог для своего тома. Но в целом вы не хотите играть с сиротскими томами. Посмотрите на https://github.com/cpuguy83/docker-volumes для еще нескольких инструментов. –
«В общем, вы не хотите играть с сиротскими томами». У вас есть выбор? Ваш контейнер ушел, и вы * имеете * для восстановления нового контейнера (то же имя), указывающего на старые данные. – VonC