87 lines
3.3 KiB
Go
87 lines
3.3 KiB
Go
package help
|
||
|
||
import (
|
||
"fmt"
|
||
|
||
"reg/internal/i18n"
|
||
)
|
||
|
||
var msgExport = &i18n.Msg{
|
||
EN: `export — save an image to a docker-save tar archive.
|
||
|
||
Usage:
|
||
reg [-r <registry>] export <image>[:<tag>|@<digest>] [-o <file.tar>] [-platform <os/arch>]
|
||
|
||
Description:
|
||
Downloads the image and writes it as a tar in the docker save format
|
||
(manifest.json, <config>.json, <layer>/layer.tar). The resulting file
|
||
can be loaded with ` + "`docker load`" + `.
|
||
|
||
Flags:
|
||
-o <file.tar> output file. Default: <repo>-<tag>.tar in the
|
||
current directory. If the path has no .tar
|
||
extension, it is appended.
|
||
-platform <p> platform (os/arch[/variant]); default — current.
|
||
For multi-arch images only the selected platform
|
||
is exported.
|
||
|
||
Notes:
|
||
- Gzip-compressed registry layers are unpacked to plain tar
|
||
(docker save format requires plain tar layers).
|
||
- Only a single-image tar is produced; multi-arch images require
|
||
selecting one platform.
|
||
- ` + "`repositories`" + ` (legacy) is not produced — modern docker load
|
||
reads ` + "`manifest.json`" + `.
|
||
|
||
Output (JSON to stdout):
|
||
{"repository": "...", "tag": "...", "digest": "...", "platform": "linux/amd64",
|
||
"path": "/abs/path/to/file.tar", "exported": true}
|
||
|
||
Examples:
|
||
reg export myapp:1.5
|
||
reg export myapp:1.5 -o /tmp/myapp.tar
|
||
reg export myapp:1.5 -platform linux/arm64
|
||
reg export registry.tld/myapp:1.5 -o myapp-1.5.tar
|
||
`,
|
||
RU: `export — сохранить образ в tar-архив формата docker save.
|
||
|
||
Использование:
|
||
reg [-r <registry>] export <image>[:<tag>|@<digest>] [-o <file.tar>] [-platform <os/arch>]
|
||
|
||
Описание:
|
||
Скачивает образ и записывает его в tar-файл в формате docker save
|
||
(manifest.json, <config>.json, <layer>/layer.tar). Полученный файл
|
||
можно загрузить через ` + "`docker load`" + `.
|
||
|
||
Флаги:
|
||
-o <file.tar> выходной файл. По умолчанию: <repo>-<tag>.tar в
|
||
текущем каталоге. Если у пути нет расширения .tar,
|
||
оно добавляется.
|
||
-platform <p> платформа (os/arch[/variant]); по умолчанию — текущая.
|
||
Для multi-arch образов экспортируется только
|
||
выбранная платформа.
|
||
|
||
Нюансы:
|
||
- Слои в реестре хранятся в gzip; для формата docker save они
|
||
распаковываются в plain tar.
|
||
- Создаётся tar с одним образом; для multi-arch образов нужно
|
||
выбрать платформу.
|
||
- Поле ` + "`repositories`" + ` (legacy) не создаётся — современный docker load
|
||
читает ` + "`manifest.json`" + `.
|
||
|
||
Вывод (JSON в stdout):
|
||
{"repository": "...", "tag": "...", "digest": "...", "platform": "linux/amd64",
|
||
"path": "/abs/path/to/file.tar", "exported": true}
|
||
|
||
Примеры:
|
||
reg export myapp:1.5
|
||
reg export myapp:1.5 -o /tmp/myapp.tar
|
||
reg export myapp:1.5 -platform linux/arm64
|
||
reg export registry.tld/myapp:1.5 -o myapp-1.5.tar
|
||
`,
|
||
}
|
||
|
||
func printExport() {
|
||
fmt.Print(msgExport.String())
|
||
}
|