docker-compose
не объединяет образы докеров в один, он запускает (с up
) или строит, а затем запускает (с up --build
) контейнеры докеров на основе изображений, определенных в файле yml
.
Подробнееинформация находится в официальных документах
Compose - инструмент для определения и запуска многоконтейнерных Docker-приложений.
, поэтому в вашем примереdocker-compose запустит два контейнера:
1 - на основе go
конфигурации
2 - на основе db
конфигурации
, чтобы увидеть, какие контейнеры действительно выполняются, используйте команду:
docker ps -a
для получения дополнительной информации см. документы докера
Всегда рекомендуется запускать каждый поиск в отдельном контейнере, но если вы настаиваете на создании изображения, которое имеети golang
и postrges
, вы можете взять базовый образ postgres
и установить на него golang
, или наоборот, взять образ на основе golang
и установить на него postgres
.
Этапы установки могут быть выполнены внутри Dockerfile
, пожалуйста, обратитесь к:
- postgres
официальный Dockerfile
- golang
официальный Dockerfile
объединить их, чтобы получить оба.
Редактировать: (развертывание цифрового океана)
Хорошо, если вы скопируете каждую вещь (образы докеров и файл yml
) в свойdroplet, он должен запустить и запустить приложение подобно тому, что происходит, когда вы делаете то же самое на локальном компьютере.
Пример можно найти здесь: Как развернуть веб-приложение Go с помощью Docker иNginx в Ubuntu 18.04
В производстве, обычно для крупномасштабных приложений / приложений для трафика, используются более продвинутые решения, такие как:
- docker swarm
- kubernetes
Для получения дополнительной информации о Kubernetes о цифровом океане, пожалуйста, обратитесь к официальным документам
надеюсь, что это поможет вам найти свой путь.