diff options
| author | Joseph Hunkeler <jhunkeler@gmail.com> | 2024-04-02 18:47:35 -0400 | 
|---|---|---|
| committer | Joseph Hunkeler <jhunkeler@gmail.com> | 2024-04-02 18:55:49 -0400 | 
| commit | 6e166dc24dfc94d385ef22c0b1c2488c1dbcd38d (patch) | |
| tree | 832b96e23db6ca14bb55ff21e04abafc10b27f3b /src | |
| parent | 6f9e22dc119e3376b0169b16fc0272c6fb78ac53 (diff) | |
| download | stasis-6e166dc24dfc94d385ef22c0b1c2488c1dbcd38d.tar.gz | |
Fix segfault in delivery docker
* Generate docker tags if no tags are defined by the user
* Only use a registry if one is defined by the user
Diffstat (limited to 'src')
| -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)); | 
