Config for container network (#96)
Fix #66 Reviewed-on: https://gitea.com/gitea/act_runner/pulls/96 Reviewed-by: Lunny Xiao <xiaolunwen@gmail.com>
This commit is contained in:
parent
7e7096e60b
commit
df3cb60978
@ -74,6 +74,7 @@ func runDaemon(ctx context.Context, configFile *string) func(cmd *cobra.Command,
|
||||
ForgeInstance: reg.Address,
|
||||
Environ: cfg.Runner.Envs,
|
||||
Labels: reg.Labels,
|
||||
Network: cfg.Container.Network,
|
||||
Version: version,
|
||||
}
|
||||
|
||||
|
@ -36,3 +36,7 @@ cache:
|
||||
# The port of the cache server.
|
||||
# 0 means to use a random available port.
|
||||
port: 0
|
||||
|
||||
container:
|
||||
# Which network to use for the job containers.
|
||||
network: bridge
|
||||
|
@ -31,6 +31,9 @@ type Config struct {
|
||||
Host string `yaml:"host"`
|
||||
Port uint16 `yaml:"port"`
|
||||
} `yaml:"cache"`
|
||||
Container struct {
|
||||
Network string `yaml:"network"`
|
||||
}
|
||||
}
|
||||
|
||||
// LoadDefault returns the default configuration.
|
||||
@ -84,6 +87,9 @@ func LoadDefault(file string) (*Config, error) {
|
||||
cfg.Cache.Dir = filepath.Join(home, ".cache", "actcache")
|
||||
}
|
||||
}
|
||||
if cfg.Container.Network == "" {
|
||||
cfg.Container.Network = "bridge"
|
||||
}
|
||||
|
||||
return cfg, nil
|
||||
}
|
||||
|
@ -22,6 +22,7 @@ type Runner struct {
|
||||
Environ map[string]string
|
||||
Client client.Client
|
||||
Labels []string
|
||||
Network string
|
||||
CacheHandler *artifactcache.Handler
|
||||
}
|
||||
|
||||
@ -34,7 +35,7 @@ func (s *Runner) Run(ctx context.Context, task *runnerv1.Task) error {
|
||||
if s.CacheHandler != nil {
|
||||
env["ACTIONS_CACHE_URL"] = s.CacheHandler.ExternalURL() + "/"
|
||||
}
|
||||
return NewTask(s.ForgeInstance, task.Id, s.Client, env, s.platformPicker).Run(ctx, task, s.Machine, s.Version)
|
||||
return NewTask(task.Id, s.Client, env, s.Network, s.platformPicker).Run(ctx, task, s.Machine, s.Version)
|
||||
}
|
||||
|
||||
func (s *Runner) platformPicker(labels []string) string {
|
||||
|
@ -74,11 +74,11 @@ type Task struct {
|
||||
}
|
||||
|
||||
// NewTask creates a new task
|
||||
func NewTask(forgeInstance string, buildID int64, client client.Client, runnerEnvs map[string]string, picker func([]string) string) *Task {
|
||||
func NewTask(buildID int64, client client.Client, runnerEnvs map[string]string, network string, picker func([]string) string) *Task {
|
||||
task := &Task{
|
||||
Input: &TaskInput{
|
||||
envs: runnerEnvs,
|
||||
containerNetworkMode: "bridge", // TODO should be configurable
|
||||
containerNetworkMode: network,
|
||||
},
|
||||
BuildID: buildID,
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user