1
0
mirror of https://github.com/1Panel-dev/1Panel.git synced 2025-02-16 05:20:08 +08:00

feat(docker): The default network of 1panel-network supports IPv6. (#7857)

This commit is contained in:
zhengkunwang 2025-02-12 21:51:31 +08:00 committed by GitHub
parent ab03d5e40e
commit 4da557fada
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 24 additions and 49 deletions

View File

@ -2,6 +2,7 @@ package docker
import (
"context"
"github.com/docker/docker/api/types/network"
"github.com/docker/docker/api/types/container"
"github.com/docker/docker/api/types/image"
@ -14,6 +15,19 @@ import (
"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 {
cli *client.Client
}
@ -34,21 +48,14 @@ func NewClient() (Client, error) {
}, nil
}
func (c Client) Close() {
_ = c.cli.Close()
func NewClientWithCli(cli *client.Client) (Client, error) {
return Client{
cli: cli,
}, nil
}
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
func (c Client) Close() {
_ = c.cli.Close()
}
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 {
_, err := c.cli.NetworkCreate(context.Background(), name, types.NetworkCreate{
Driver: "bridge",
_, err := c.cli.NetworkCreate(context.Background(), name, network.CreateOptions{
Driver: "bridge",
EnableIPv6: new(bool),
})
return err
}
@ -103,26 +111,6 @@ func (c Client) DeleteImage(imageID string) error {
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) {
filter := filters.NewArgs()
filter.Add("reference", imageName)
@ -138,20 +126,8 @@ func (c Client) GetImageIDByName(imageName string) (string, error) {
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 {
var options types.NetworkListOptions
var options network.ListOptions
options.Filters = filters.NewArgs(filters.Arg("name", name))
networks, err := c.cli.NetworkList(context.Background(), options)
if err != nil {

View File

@ -743,7 +743,6 @@ export const encryptPassword = (password: string) => {
}
let rsaPublicKeyText = getCookie('panel_public_key');
if (!rsaPublicKeyText) {
console.log('RSA public key not found');
return password;
}
rsaPublicKeyText = urlDecode(rsaPublicKeyText);