当前位置: 首页 > 知识库问答 >
问题:

在docker-compose中将secomp设置为unconcounted

龙俊良
2023-03-14
docker run --security-opt=seccomp:unconfined <id> dlv debug --listen=:2345 --headless --log ./cmd/main.go
networks:
  backend:

services:
  example:
    build: .
    security_opt:
      - seccomp:unconfined
    networks:
      - backend
    ports:
      - "5002:5002"
FROM golang:1.8

RUN go get -u github.com/derekparker/delve/cmd/dlv
RUN dlv debug --listen=:2345 --headless --log ./cmd/main.go
docker-compose -f docker-compose.yml up --build --abort-on-container-exit

2017/09/04 15:58:33 server.go:73:使用API v1 2017/09/04 15:58:33 debugger.go:97:使用args启动进程:[/go/src/debug]无法启动进程:fork/exec/go/src/debug:不允许操作

共有1个答案

施文彬
2023-03-14

compose语法是正确的。但是security_opt将应用于容器的新实例,因此在构建时不可用,就像您尝试使用Dockerfilerun命令一样。

正确的做法应该是:

DockerFile:

FROM golang:1.8
RUN go get -u github.com/derekparker/delve/cmd/dlv
networks:
  backend:

services:
  example:
    build: .
    security_opt:
      - seccomp:unconfined
    networks:
      - backend
    ports:
      - "5002:5002"
    entrypoint: ['/usr/local/bin/dlv', '--listen=: 2345', '--headless=true', '--api-version=2', 'exec', 'cmd/main.go']
 类似资料:
  • 问题内容: 我在设置中运行官方Redis镜像https://hub.docker.com/_/redis/。 如何在该图像上使用docker-compose 运行? 我尝试了以下操作,但未连接: 图片的文档说我应该运行: 这是什么意思? 问题答案: 那会覆盖默认值:您试图在从未执行过的容器上运行。 如此处所述,您还可以使用以下方法进行测试: 如这个docker / compose问题2123 所述

  • 问题内容: 在我的文件中,具有以下内容。但是,容器不会选择主机名值。有任何想法吗? 当我检查容器中的主机名时,它没有启动。 问题答案: 我发现使用时主机名对其他容器不可见。事实证明这是一个已知问题(也许是一个已知功能),其中一部分讨论是: 我们可能应该在文档中添加有关使用主机名的警告。我认为它很少有用。 就容器网络而言,分配主机名的正确方法是定义一个别名,如下所示: 不幸的是,这 仍然 无法使用。

  • 在我的文件中,我有以下内容。但是容器没有选择主机名值。有什么想法吗? 当我检查容器中的主机名时,它不会拾取。

  • 我可以将其更改为正确的容器主机名-->plaintext://kafka:9092,但这样我就无法用其他应用程序再次访问kafka实例了。有什么简单的方法可以解决这个问题吗?

  • 我有我的yaml文件的以下片段。 如何在docker compose文件中为db容器使用的卷定义卷的大小?

  • 我尝试从Java服务公开端口(不同的端口#,不是只公开内部端口,等等),但没有成功。 如果我尝试将配置附加到Ignite服务,它完全不起作用。 我的最终目标是使用Docker-Compose建立一个环境,我可以在本地加入该环境进行测试,但最终将其转移到ECS/Fargate。 私人静电点火;