Я новичок в docker-compose, я создал тот, который хорошо работает на моем локальном компьютере по умолчанию:
version: '3'
services:
mysql-docker-container:
image: mysql:latest
environment:
- MYSQL_ROOT_PASSWORD=*****
- MYSQL_DATABASE=*****
- MYSQL_USER=*****
- MYSQL_PASSWORD=*****
ports:
- 3306:3306
volumes:
- /data/mysql
restart: always
myproject-server-container:
image: myproject
build:
context: ./
args:
JAR_FILE: target/myproject-0.0.1-SNAPSHOT.jar
dockerfile: Dockerfile
depends_on:
- mysql-docker-container
ports:
- 80:8080
volumes:
- /data/server
restart: always
Теперь мне нужно отправить приложение с образами mysql в удаленный реестр.
Когда у меня был только образ моего проекта без контейнера базы данных, я просто сделал docker tag "imageId" "repo/myimageName", а затем docker push repo/myimageName.
Как я могу сделать то же самое с файлом docker-compose?




Поскольку вы используете публичный образ mysql, вам не нужно его продвигать. Вы можете просто нажать на изображение своего приложения.
Если вы хотите также отправить образ mysql в свой частный репозиторий, вы можете сделать это, запустив docker-compose push, который попытается отправить все образы.
Предполагая, что вы размещаете свой собственный реестр на example.com, вам просто нужно указать это как часть имени вашего образа, чтобы образ отправлялся туда вместо концентратора Docker.
version: '3'
services:
service1:
build: .
image: example.com/yourimage # goes to example.com registry
service2:
build: .
image: youruser/yourimage # goes to youruser DockerHub registry
См. Документацию здесь для получения дополнительных опций и примеров.
См. Обновленный ответ, вы просто включаете URL-адрес реестра в имя образа.
Хорошо, отлично, я уже прочитал этот ответ и сделал это, но получил ошибки из реестра. Я уточню у владельца реестра, возможно, служба регистрации не работает.
Спасибо за ответ, но куда мне нужно указать URL-адрес реестра?