mirror of
https://github.com/1Panel-dev/1Panel.git
synced 2025-02-19 14:58:09 +08:00
feat(docker): The default network of 1panel-network supports IPv6. (#7857)
This commit is contained in:
parent
ab03d5e40e
commit
4da557fada
@ -2,6 +2,7 @@ package docker
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/docker/docker/api/types/network"
|
||||||
|
|
||||||
"github.com/docker/docker/api/types/container"
|
"github.com/docker/docker/api/types/container"
|
||||||
"github.com/docker/docker/api/types/image"
|
"github.com/docker/docker/api/types/image"
|
||||||
@ -14,6 +15,19 @@ import (
|
|||||||
"github.com/docker/docker/client"
|
"github.com/docker/docker/client"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func NewDockerClient() (*client.Client, error) {
|
||||||
|
var settingItem model.Setting
|
||||||
|
_ = global.DB.Where("key = ?", "DockerSockPath").First(&settingItem).Error
|
||||||
|
if len(settingItem.Value) == 0 {
|
||||||
|
settingItem.Value = "unix:///var/run/docker.sock"
|
||||||
|
}
|
||||||
|
cli, err := client.NewClientWithOpts(client.FromEnv, client.WithHost(settingItem.Value), client.WithAPIVersionNegotiation())
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return cli, nil
|
||||||
|
}
|
||||||
|
|
||||||
type Client struct {
|
type Client struct {
|
||||||
cli *client.Client
|
cli *client.Client
|
||||||
}
|
}
|
||||||
@ -34,21 +48,14 @@ func NewClient() (Client, error) {
|
|||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c Client) Close() {
|
func NewClientWithCli(cli *client.Client) (Client, error) {
|
||||||
_ = c.cli.Close()
|
return Client{
|
||||||
|
cli: cli,
|
||||||
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewDockerClient() (*client.Client, error) {
|
func (c Client) Close() {
|
||||||
var settingItem model.Setting
|
_ = c.cli.Close()
|
||||||
_ = global.DB.Where("key = ?", "DockerSockPath").First(&settingItem).Error
|
|
||||||
if len(settingItem.Value) == 0 {
|
|
||||||
settingItem.Value = "unix:///var/run/docker.sock"
|
|
||||||
}
|
|
||||||
cli, err := client.NewClientWithOpts(client.FromEnv, client.WithHost(settingItem.Value), client.WithAPIVersionNegotiation())
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return cli, nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c Client) ListContainersByName(names []string) ([]types.Container, error) {
|
func (c Client) ListContainersByName(names []string) ([]types.Container, error) {
|
||||||
@ -90,8 +97,9 @@ func (c Client) ListAllContainers() ([]types.Container, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c Client) CreateNetwork(name string) error {
|
func (c Client) CreateNetwork(name string) error {
|
||||||
_, err := c.cli.NetworkCreate(context.Background(), name, types.NetworkCreate{
|
_, err := c.cli.NetworkCreate(context.Background(), name, network.CreateOptions{
|
||||||
Driver: "bridge",
|
Driver: "bridge",
|
||||||
|
EnableIPv6: new(bool),
|
||||||
})
|
})
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -103,26 +111,6 @@ func (c Client) DeleteImage(imageID string) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c Client) InspectContainer(containerID string) (types.ContainerJSON, error) {
|
|
||||||
return c.cli.ContainerInspect(context.Background(), containerID)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c Client) PullImage(imageName string, force bool) error {
|
|
||||||
if !force {
|
|
||||||
exist, err := c.CheckImageExist(imageName)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if exist {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if _, err := c.cli.ImagePull(context.Background(), imageName, image.PullOptions{}); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c Client) GetImageIDByName(imageName string) (string, error) {
|
func (c Client) GetImageIDByName(imageName string) (string, error) {
|
||||||
filter := filters.NewArgs()
|
filter := filters.NewArgs()
|
||||||
filter.Add("reference", imageName)
|
filter.Add("reference", imageName)
|
||||||
@ -138,20 +126,8 @@ func (c Client) GetImageIDByName(imageName string) (string, error) {
|
|||||||
return "", nil
|
return "", nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c Client) CheckImageExist(imageName string) (bool, error) {
|
|
||||||
filter := filters.NewArgs()
|
|
||||||
filter.Add("reference", imageName)
|
|
||||||
list, err := c.cli.ImageList(context.Background(), image.ListOptions{
|
|
||||||
Filters: filter,
|
|
||||||
})
|
|
||||||
if err != nil {
|
|
||||||
return false, err
|
|
||||||
}
|
|
||||||
return len(list) > 0, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c Client) NetworkExist(name string) bool {
|
func (c Client) NetworkExist(name string) bool {
|
||||||
var options types.NetworkListOptions
|
var options network.ListOptions
|
||||||
options.Filters = filters.NewArgs(filters.Arg("name", name))
|
options.Filters = filters.NewArgs(filters.Arg("name", name))
|
||||||
networks, err := c.cli.NetworkList(context.Background(), options)
|
networks, err := c.cli.NetworkList(context.Background(), options)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -743,7 +743,6 @@ export const encryptPassword = (password: string) => {
|
|||||||
}
|
}
|
||||||
let rsaPublicKeyText = getCookie('panel_public_key');
|
let rsaPublicKeyText = getCookie('panel_public_key');
|
||||||
if (!rsaPublicKeyText) {
|
if (!rsaPublicKeyText) {
|
||||||
console.log('RSA public key not found');
|
|
||||||
return password;
|
return password;
|
||||||
}
|
}
|
||||||
rsaPublicKeyText = urlDecode(rsaPublicKeyText);
|
rsaPublicKeyText = urlDecode(rsaPublicKeyText);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user