diff options
Diffstat (limited to 'src/deliverable.c')
-rw-r--r-- | src/deliverable.c | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/src/deliverable.c b/src/deliverable.c index 3d8179c..d2956f1 100644 --- a/src/deliverable.c +++ b/src/deliverable.c @@ -1683,12 +1683,37 @@ int delivery_docker(struct Delivery *ctx) { return -1; } char args[PATH_MAX]; + int has_registry = ctx->deploy.docker.registry != NULL; size_t total_tags = strlist_count(ctx->deploy.docker.tags); size_t total_build_args = strlist_count(ctx->deploy.docker.build_args); + if (!has_registry) { + msg(OMC_MSG_WARN | OMC_MSG_L2, "No docker registry defined. You will need to manually retag the resulting image.\n"); + } + if (!total_tags) { - fprintf(stderr, "error: at least one docker image tag must be defined\n"); - return -1; + char default_tag[PATH_MAX]; + msg(OMC_MSG_WARN | OMC_MSG_L2, "No docker tags defined by configuration. Generating default tag(s).\n"); + // generate local tag + memset(default_tag, 0, sizeof(default_tag)); + sprintf(default_tag, "%s:%s-py%s", ctx->meta.name, ctx->info.build_name, ctx->meta.python_compact); + tolower_s(default_tag); + + // Add tag + ctx->deploy.docker.tags = strlist_init(); + strlist_append(&ctx->deploy.docker.tags, default_tag); + + if (has_registry) { + // generate tag for target registry + memset(default_tag, 0, sizeof(default_tag)); + sprintf(default_tag, "%s/%s:%s-py%s", ctx->deploy.docker.registry, ctx->meta.name, ctx->info.build_name, ctx->meta.python_compact); + tolower_s(default_tag); + + // Add tag + strlist_append(&ctx->deploy.docker.tags, default_tag); + } + // regenerate total tag available + total_tags = strlist_count(ctx->deploy.docker.tags); } memset(args, 0, sizeof(args)); |