Почему папка не привязана? - PullRequest
0 голосов
/ 22 апреля 2020

Я пытаюсь создать контейнер для тестирования с https://pkg.go.dev/github.com/fsouza/go-dockerclient?tab=doc следующим образом:

client, err := docker.NewClientFromEnv()
NoError(t, err, err)

ctx := context.Background()

gogs, err := client.CreateContainer(docker.CreateContainerOptions{
    Name: "gogs",
    Config: &docker.Config{
        Image: "gogs/gogs:0.11.91",
    },
    HostConfig: &docker.HostConfig{
        PublishAllPorts: true,
        AutoRemove:      true,
        Binds:           []string{dest, "/data"},
        PortBindings: map[docker.Port][]docker.PortBinding{
            "3000/tcp": {{HostIP: "0.0.0.0", HostPort: "8888"}}},
    },
    Context: ctx,
})
NoError(t, err, err)

err = client.StartContainer(gogs.ID, nil)
NoError(t, err, err)

Проблема в том, что привязка не работает. Чего я пытаюсь добиться:

docker run --rm -it -p 8888:3000 --name=gogs --mount type=bind,source=`pwd`/gogs/data,target=/data gogs/gogs 

Что я делаю не так?

1 Ответ

1 голос
/ 22 апреля 2020

При установке пути вы можете прикрепить Mounts к HostConfig следующим образом:

&container.HostConfig{
    Mounts: []mount.Mount{
        {
            Type:   mount.TypeBind,
            Source: "/source",
            Target: "/target",
        },
    },
}

Это смонтирует /source в контейнере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...