use container.NetworkMode

This commit is contained in:
sillyguodong 2023-05-12 16:33:15 +08:00
parent d5e4baed54
commit 4cd821b06d
3 changed files with 8 additions and 3 deletions
internal

View file

@ -13,6 +13,7 @@ import (
"strings"
"time"
docker_container "github.com/docker/docker/api/types/container"
"github.com/joho/godotenv"
"github.com/nektos/act/pkg/artifactcache"
"github.com/nektos/act/pkg/artifacts"
@ -355,6 +356,7 @@ func runExec(ctx context.Context, execArgs *executeArgs) func(cmd *cobra.Command
log.Infof("cache handler listens on: %v", handler.ExternalURL())
execArgs.cacheHandler = handler
networkMode := docker_container.NetworkMode("bridge")
// run the plan
config := &runner.Config{
Workdir: execArgs.Workdir(),
@ -384,7 +386,7 @@ func runExec(ctx context.Context, execArgs *executeArgs) func(cmd *cobra.Command
// EventJSON: string(eventJSON),
ContainerNamePrefix: fmt.Sprintf("GITEA-ACTIONS-TASK-%s", eventName),
ContainerMaxLifetime: maxLifetime,
ContainerNetworkMode: "bridge",
ContainerNetworkMode: &networkMode,
DefaultActionInstance: execArgs.defaultActionsUrl,
PlatformPicker: func(_ []string) string {
return execArgs.image

View file

@ -13,6 +13,7 @@ import (
"time"
runnerv1 "code.gitea.io/actions-proto-go/runner/v1"
docker_container "github.com/docker/docker/api/types/container"
"github.com/nektos/act/pkg/artifactcache"
"github.com/nektos/act/pkg/common"
"github.com/nektos/act/pkg/model"
@ -170,6 +171,7 @@ func (r *Runner) run(ctx context.Context, task *runnerv1.Task, reporter *report.
maxLifetime = time.Until(deadline)
}
networkMode := docker_container.NetworkMode(r.cfg.Container.NetworkMode)
runnerConfig := &runner.Config{
// On Linux, Workdir will be like "/<parent_directory>/<owner>/<repo>"
// On Windows, Workdir will be like "\<parent_directory>\<owner>\<repo>"
@ -190,7 +192,7 @@ func (r *Runner) run(ctx context.Context, task *runnerv1.Task, reporter *report.
EventJSON: string(eventJSON),
ContainerNamePrefix: fmt.Sprintf("GITEA-ACTIONS-TASK-%d", task.Id),
ContainerMaxLifetime: maxLifetime,
ContainerNetworkMode: r.cfg.Container.NetworkMode,
ContainerNetworkMode: &networkMode,
ContainerOptions: r.cfg.Container.Options,
Privileged: r.cfg.Container.Privileged,
DefaultActionInstance: taskContext["gitea_default_actions_url"].GetStringValue(),

View file

@ -42,7 +42,8 @@ cache:
port: 0
container:
# Which network to use for the job containers. Could be bridge, host, none, or the name of a custom network.
# Which network to use for the job containers. Could be bridge, host, or the name of a custom network.
# More info: https://gitea.com/gitea/act/pulls/56
network_mode: bridge
# Whether to use privileged mode or not when launching task containers (privileged mode is required for Docker-in-Docker).
privileged: false