Есть много приложений , которые я запускаю на своей рабочей станции, используя docker-compose up
.
Причины:
- Они У меня нет установщика, или я не хочу его использовать
- Для них требуется специальный механизм хранения
- Для них требуется шаг процесса сборки
- Они созданы мной, и я хочу, чтобы они легко запускались на любой рабочей станции
- et c
Так что я обычно получаю следующую файловую структуру :
myAppDir
- docker-compose.yml
- Dockerfile (not always)
- someConfigFile
И мой docker -compose.yml выглядит примерно так: (Он может содержать 2 или 3 службы, но я предоставляю простейшую форму, которую я использую )
version: '3.7'
services:
mysql:
image: mysql:5.7.29
restart: always
volumes:
- ./mysqld.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf
environment:
- MYSQL_ROOT_PASSWORD=xyz
ports:
- 3306:3306
Затем, когда мне нужно запустить приложение , я просто выполняю:
docker-compose up # (or with --build)
Недавно я попытался добавить:
deploy:
resources:
limits:
cpus: '0.50'
memory: 200M
и получили сообщение:
В некоторых службах (mysql) используется ключ 'deploy', который будет игнорироваться. Compose не поддерживает конфигурацию 'deploy' - используйте docker stack deploy
для развертывания в рое.
Поэтому я попытался:
docker stack deploy mystack --compose-file docker-compose.yml
и получено сообщение:
Игнорирование неподдерживаемых параметров: перезапустите
этот узел не является менеджером роя. Используйте «docker swarm init» или «docker swarm join», чтобы соединить этот узел с роем и попробуйте снова
Это кажется более сложным, чем docker-compose up
.
Я видел, что я может использовать --compatibility
флаг например,
docker-compose --compatibility up
Но слово совместимость означает для меня, что я должен скоро переключиться на новый способ запуска моего apps local.
Мой вопрос: Что такое новая процедура, которой я должен следовать для запуска приложений на моей рабочей станции с использованием docker и файл дескриптора для опций поддержки, присутствующих в файле Compose v3 ?