in e2etestrunner/setuplocal.go [111:154]
func createContainer(
ctx context.Context,
cli *client.Client,
args *Args,
pubsubInfo *setuptf.PubsubInfo,
logger *log.Logger,
) (container.CreateResponse, error) {
env := []string{
"PORT=" + args.Local.Port,
"PROJECT_ID=" + args.ProjectID,
"REQUEST_SUBSCRIPTION_NAME=" + pubsubInfo.RequestTopic.SubscriptionName,
"RESPONSE_TOPIC_NAME=" + pubsubInfo.ResponseTopic.TopicName,
"SUBSCRIPTION_MODE=" + string(setuptf.Pull),
}
mounts := []mount.Mount{}
if args.Local.GoogleApplicationCredentials != "" {
env = append(env, "GOOGLE_APPLICATION_CREDENTIALS="+args.Local.GoogleApplicationCredentials)
mounts = append(mounts, mount.Mount{
Type: mount.TypeBind,
Source: args.Local.GoogleApplicationCredentials,
Target: args.Local.GoogleApplicationCredentials,
ReadOnly: true,
})
}
return cli.ContainerCreate(
ctx,
&container.Config{
Image: args.Local.Image,
Env: env,
ExposedPorts: nat.PortSet{
nat.Port(args.Local.Port): struct{}{},
},
User: args.Local.ContainerUser,
},
&container.HostConfig{
Mounts: mounts,
NetworkMode: container.NetworkMode(args.Local.Network),
},
nil,
nil,
"",
)
}