当前位置: 首页 > wzjs >正文

软文代写系统优化助手

软文代写,系统优化助手,深圳做企业网站的公,新网站怎么做网络推广前情提要 本文基于开发一个在线代码运行平台的项目需求上,所以需要挂载目录以达到获得执行文件的目的。 步骤1 首先在docker-compose 文件中,当前容器一定要跟宿主机的套接字进行挂载 version: 3.8 services: code-runner-api: build: context: . d…

前情提要

本文基于开发一个在线代码运行平台的项目需求上,所以需要挂载目录以达到获得执行文件的目的。

步骤1

首先在docker-compose 文件中,当前容器一定要跟宿主机的套接字进行挂载

version: '3.8'  services:  code-runner-api:  build:  context: .  dockerfile: builds/api/Dockerfile  volumes:  - /var/run/docker.sock:/var/run/docker.sock  environment:  - APP_ENV=production  - DOCKER_HOST=unix:///var/run/docker.sock  ports:  - ""  

步骤二

创建docker客户端

type dockerContainerClient struct {  ctx context.Context  cli *client.Client  
}  // NewDockerClient 
func NewDockerClient(ctx context.Context) (*dockerContainerClient, error) {  cli, err := client.NewClientWithOpts(  client.WithHost("unix:///var/run/docker.sock"),  client.WithAPIVersionNegotiation(), // 自动协商API版本  )  if err != nil {  log.Println("domain.client.entity.NewDockerClient() NewClientWithOpts err=", err)  return nil, fmt.Errorf("创建Docker客户端失败: %v", err)  }  return &dockerContainerClient{ctx: ctx, cli: cli}, nil  
}  

创建容器示例

// CreateContainer 创建指定容器  
func (client *dockerContainerClient) createContainer(image string, language string) (container.CreateResponse, error) {  config := &container.Config{  Image:      image,  User:       "root",  WorkingDir: "/app",  Cmd:        []string{"sleep", "infinity"}, // 修改启动命令为 sleep 无限循环  Env: []string{  "GO111MODULE=on",  "GOPROXY=https://goproxy.cn,direct",  },  }  hostConfig := &container.HostConfig{  ReadonlyRootfs: false,  CapDrop:        []string{"ALL"},  NetworkMode:    "none", // 关闭容器网络连接  Resources: container.Resources{  Memory:     512 * 1024 * 1024,  MemorySwap: 512 * 1024 * 1024,  CPUQuota:   100000,  CPUPeriod:  100000,  CPUCount:   1,  },  Binds: []string{fmt.Sprintf("/tmp/%s:/app", language)}, // 挂载到容器的/app目录  }  fmt.Printf("创建容器配置:\n")  fmt.Printf("镜像:%s\n", image)  fmt.Printf("工作目录:%s\n", config.WorkingDir)  fmt.Printf("挂载路径:%s\n", hostConfig.Binds[0])  resp, err := client.cli.ContainerCreate(  client.ctx,  config,  hostConfig,  nil,  nil,  "",  )  if err != nil {  log.Println("domain.client.entity.createContainer() ContainerCreate err=", err)  return container.CreateResponse{}, fmt.Errorf("容器创建失败: %v", err)  }  return resp, nil  
}

注意

1.如果想营造安全的沙箱环境一定要记得关闭容器的网络

2.注意挂载的路径,最好在代码中打印检查一下传入的参数

http://www.dtcms.com/wzjs/308066.html

相关文章:

  • 色流网站如何做什么是电商平台推广
  • 英文网站推广公司国际新闻直播
  • 南通小企业网站建设30条新闻摘抄
  • 做网站需要怎么分工百度热搜关键词
  • 洛阳西工区做网站哪家好济南网站运营公司
  • wordpress 书籍seo哪里可以学
  • 最新网游网络游戏新开服seo外链是什么
  • 专门做网站开发的公司百度动态排名软件
  • 青岛网站开发深圳营销型网站设计公司
  • 夺宝网站怎样做优化seo课程培训
  • wordpress搜资料seowhy
  • 小程序怎么做优惠券网站如何让关键词排名靠前
  • 求人做网站的网站搜资源
  • java 做网站 模板在哪可以下东营网站建设制作
  • 凡科建站怎么保存网站软件推广的渠道是哪里找的
  • 网站排名提升工具简单网页设计模板html
  • 培训教育行业网站建设方案seo外链优化方法
  • 国庆图片制作小程序seo研究
  • 外国做家具的网站湖南企业seo优化报价
  • 和田网页设计株洲seo优化报价
  • 公司网站怎么建立爱站网关键词密度查询
  • 谷歌广告推广网站设计网站logo
  • 网站建设 经验全网营销策划公司
  • 嘉定公司网站设计新闻摘抄
  • 有成功案例的网站app拉新平台
  • 厦门做外贸网站宁波网站推广公司报价
  • 卡密网站建设抖音推广平台联系方式
  • 公安局备案网站微博推广价格表
  • 网站建设是自学好还是拼多多关键词排名查询软件
  • 互联网行业前景分析北京seo邢云涛