Allow to set env variables through the API

This commit is contained in:
Marcos Lilljedahl
2020-06-19 08:26:12 -03:00
parent 0810809166
commit 833e71330f
4 changed files with 6 additions and 2 deletions

View File

@@ -262,6 +262,7 @@ type CreateContainerOpts struct {
Labels map[string]string Labels map[string]string
Networks []string Networks []string
DindVolumeSize string DindVolumeSize string
Envs []string
} }
func (d *docker) ContainerCreate(opts CreateContainerOpts) (err error) { func (d *docker) ContainerCreate(opts CreateContainerOpts) (err error) {
@@ -269,7 +270,7 @@ func (d *docker) ContainerCreate(opts CreateContainerOpts) (err error) {
containerDir := "/opt/pwd" containerDir := "/opt/pwd"
containerCertDir := fmt.Sprintf("%s/certs", containerDir) containerCertDir := fmt.Sprintf("%s/certs", containerDir)
env := []string{fmt.Sprintf("SESSION_ID=%s", opts.SessionId)} env := append([]string{}, fmt.Sprintf("SESSION_ID=%s", opts.SessionId))
// Write certs to container cert dir // Write certs to container cert dir
if len(opts.ServerCert) > 0 { if len(opts.ServerCert) > 0 {

View File

@@ -78,6 +78,7 @@ func (d *DinD) InstanceNew(session *types.Session, conf types.InstanceConfig) (*
Privileged: true, Privileged: true,
Networks: []string{session.Id}, Networks: []string{session.Id},
DindVolumeSize: conf.DindVolumeSize, DindVolumeSize: conf.DindVolumeSize,
Envs: conf.Envs,
} }
dockerClient, err := d.factory.GetForSession(session) dockerClient, err := d.factory.GetForSession(session)

View File

@@ -171,6 +171,7 @@ func TestInstanceNew_WithNotAllowedImage(t *testing.T) {
ServerKey: nil, ServerKey: nil,
CACert: nil, CACert: nil,
Privileged: true, Privileged: true,
Envs: []string{"HELLO=WORLD"},
Networks: []string{session.Id}, Networks: []string{session.Id},
} }
_d.On("ContainerCreate", expectedContainerOpts).Return(nil) _d.On("ContainerCreate", expectedContainerOpts).Return(nil)
@@ -178,7 +179,7 @@ func TestInstanceNew_WithNotAllowedImage(t *testing.T) {
_s.On("InstancePut", mock.AnythingOfType("*types.Instance")).Return(nil) _s.On("InstancePut", mock.AnythingOfType("*types.Instance")).Return(nil)
_e.M.On("Emit", event.INSTANCE_NEW, "aaaabbbbcccc", []interface{}{"aaaabbbb_aaaabbbbcccc", "10.0.0.1", "node1", "ip10-0-0-1-aaaabbbbcccc"}).Return() _e.M.On("Emit", event.INSTANCE_NEW, "aaaabbbbcccc", []interface{}{"aaaabbbb_aaaabbbbcccc", "10.0.0.1", "node1", "ip10-0-0-1-aaaabbbbcccc"}).Return()
instance, err := p.InstanceNew(session, types.InstanceConfig{ImageName: "redis"}) instance, err := p.InstanceNew(session, types.InstanceConfig{ImageName: "redis", Envs: []string{"HELLO=WORLD"}})
assert.Nil(t, err) assert.Nil(t, err)
assert.Equal(t, expectedInstance, *instance) assert.Equal(t, expectedInstance, *instance)

View File

@@ -39,4 +39,5 @@ type InstanceConfig struct {
PlaygroundFQDN string PlaygroundFQDN string
Type string Type string
DindVolumeSize string DindVolumeSize string
Envs []string
} }