hook up global networks

This commit is contained in:
Brad Rydzewski
2019-10-30 15:13:54 -07:00
parent 3761bd0df4
commit 5b1d8d65ed
4 changed files with 40 additions and 8 deletions

View File

@@ -78,6 +78,16 @@ steps:
- refs/heads/master
- refs/tags/*
volumes:
- name: go
temp: {}
---
kind: pipeline
type: docker
name: manifest
steps:
- name: manifest
image: plugins/manifest
settings:
@@ -88,11 +98,11 @@ steps:
from_secret: docker_password
username:
from_secret: docker_username
when:
ref:
- refs/heads/master
- refs/tags/*
volumes:
- name: go
temp: {}
depends_on:
- linux
trigger:
ref:
- refs/heads/master
- refs/tags/*

View File

@@ -63,6 +63,9 @@ func configureSerial(spec *engine.Spec) {
func convertStaticEnv(src map[string]*manifest.Variable) map[string]string {
dst := map[string]string{}
for k, v := range src {
if v == nil {
continue
}
if strings.TrimSpace(v.Secret) == "" {
dst[k] = v.Value
}
@@ -76,6 +79,9 @@ func convertStaticEnv(src map[string]*manifest.Variable) map[string]string {
func convertSecretEnv(src map[string]*manifest.Variable) []*engine.Secret {
dst := []*engine.Secret{}
for k, v := range src {
if v == nil {
continue
}
if strings.TrimSpace(v.Secret) != "" {
dst = append(dst, &engine.Secret{
Name: v.Secret,

View File

@@ -251,7 +251,9 @@ func toVolumeType(from *Volume) mount.Type {
func toEnv(env map[string]string) []string {
var envs []string
for k, v := range env {
envs = append(envs, k+"="+v)
if v != "" {
envs = append(envs, k+"="+v)
}
}
return envs
}

View File

@@ -16,6 +16,7 @@ import (
"docker.io/go-docker"
"docker.io/go-docker/api/types"
"docker.io/go-docker/api/types/network"
"docker.io/go-docker/api/types/volume"
)
@@ -214,6 +215,19 @@ func (e *Docker) create(ctx context.Context, spec *Spec, step *Step, output io.W
return err
}
// attach the container to user-defined networks.
// primarily used to attach global user-defined networks.
if step.Network == "" {
for _, net := range step.Networks {
err = e.client.NetworkConnect(ctx, net, step.ID, &network.EndpointSettings{
Aliases: []string{net},
})
if err != nil {
return nil
}
}
}
return nil
}