GVKun编程网logo

php exec()某个shell结果出错,原因是php中的 grep只能处理文本流,二进制流不行_PHP教程

3

本文将为您提供关于phpexec()某个shell结果出错,原因是php中的grep只能处理文本流,二进制流不行_PHP教程的详细介绍,同时,我们还将为您提供关于cgo:execgcc:exec:"g

本文将为您提供关于php exec()某个shell结果出错,原因是php中的 grep只能处理文本流,二进制流不行_PHP教程的详细介绍,同时,我们还将为您提供关于cgo: exec gcc: exec: "gcc": 在 $PATH 中找不到可执行文件 Egress operator 安装错误、docker - 进入容器报错:OCI runtime exec failed: exec failed: container_linux.go:370: starting container pro、Docker buildx with node app on Apple M1 Silicon - standard_init_linux.go:211:exec 用户进程导致“exec 格式错误”、Docker 镜像执行 golang 可执行文件:exec /usr/local/go/bin/go: exec 格式错误的实用信息。

本文目录一览:

php exec()某个shell结果出错,原因是php中的 grep只能处理文本流,二进制流不行_PHP教程

php exec()某个shell结果出错,原因是php中的 grep只能处理文本流,二进制流不行_PHP教程

 cat aa.txt | grep   ''startup'' |wc-l

在linux命令行下测试没有问题。但是在php的exec的就出现问题了,很奇怪。
结果报错:
报错提示如下:cat: write error: Broken pipe
 
 
废了好大劲,查了好多资料,终于解决。
grep的选项增加-a选项就ok了
 
grep -a选项的意思是:Process a binary file as if it were text; this is equivalent to the --binary-files=text option
 
应该是cat的这个文件内容有二进制流,导致grep不识别 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/477649.htmlTechArticlecat aa.txt | grep startup |wc-l 在linux命令行下测试没有问题。但是在php的exec的就出现问题了,很奇怪。 结果报错: 报错提示如下:cat: write erro...

cgo: exec gcc: exec:

cgo: exec gcc: exec: "gcc": 在 $PATH 中找不到可执行文件 Egress operator 安装错误

如何解决cgo: exec gcc: exec: "gcc": 在 $PATH 中找不到可执行文件 Egress operator 安装错误?

我正在尝试使用 Egress Operator 来限制基于域的出口调用。我正在使用 Ubuntu 18 Hyper-V VM 并且我拥有所有 prerequisites:

  1. 用于推送图像的 Azure 存储库
  2. Kubebuilder 用于代码生成
  3. Kustomize 用于构建 Kubernetes 清单
  4. coredns(默认使用 k3s)pod 正在运行
  5. Golang : go version go1.16.5 linux/amd64

但是当 Testing locally make run 给出以下错误时:

root@Ubuntu18-Virtual-Machine:~/egress-operator# make run
go: creating new go.mod: module tmp
go get: added sigs.k8s.io/controller-tools v0.2.4
/root/go/bin/controller-gen object:headerFile=./hack/boilerplate.go.txt paths="./..."
Error: go [list -e -json -compiled=true -test=false -export=false -deps=true -find=false -tags ignore_autogenerated -- ./...]: exit status 2: # runtime/cgo
cgo: exec gcc: exec: "gcc": executable file not found in $PATH

同样在 ConfigMap 中编辑 coredns 部署和 coredns 核心文件后,如 coredns plugin setup 中所述,我在执行 make deploy 命令时看到错误:

root@Ubuntu18-Virtual-Machine:~/egress-operator# make deploy IMG=MY_REPO/egress-operator:v0.1
go: creating new go.mod: module tmp
go get: added sigs.k8s.io/controller-tools v0.2.4
/root/go/bin/controller-gen "crd:trivialVersions=true" rbac:roleName=manager-role webhook paths="./..." output:crd:artifacts:config=config/crd/bases
Error: go [list -e -json -compiled=true -test=false -export=false -deps=true -find=false -tags ignore_autogenerated -- ./...]: exit status 2: # runtime/cgo
cgo: exec gcc: exec: "gcc": executable file not found in $PATH

谁能告诉我如何解决这个问题?

解决方法

您的环境似乎没有安装 gcc 编译器。请尝试以下操作:

sudo apt-get install build-essential

sudo apt-get  build-dep  gcc

然后检查是否安装成功:

gcc --version

另见此similar problem。

docker - 进入容器报错:OCI runtime exec failed: exec failed: container_linux.go:370: starting container pro

docker - 进入容器报错:OCI runtime exec failed: exec failed: container_linux.go:370: starting container pro

使用 docker exec -it Nginx /bin/bash  提示错误@H_301_1@

OCI runtime exec Failed: exec Failed: container_linux.go:370: starting container process caused: exec: "/bin/bash": stat /bin/bash: no such file or directory: unkNown@H_301_1@

 @H_301_1@

解决办法:@H_301_1@

docker exec -it Nginx /bin/sh@H_301_1@

Docker buildx with node app on Apple M1 Silicon - standard_init_linux.go:211:exec 用户进程导致“exec 格式错误”

Docker buildx with node app on Apple M1 Silicon - standard_init_linux.go:211:exec 用户进程导致“exec 格式错误”

如何解决Docker buildx with node app on Apple M1 Silicon - standard_init_linux.go:211:exec 用户进程导致“exec 格式错误”

请帮忙!

我正在尝试将 docker 映像部署到 kuebernetes 集群。没问题,直到我切换到带有 M1 的新 Macbook Pro。

在 m1 机器上构建映像并部署后,我从 kuebernetes pod 收到以下错误: standard_init_linux.go:211: exec user process caused "exec format error"

在做了一些研究之后,我关注了 this 中关于添加和设置 docker buildx 的帖子。

一旦我使用新的 buildx 构建了一个新映像并使用 docker 桌面(与 m1 兼容的预览版)在本地运行它,它就可以正常运行。但是 kubernetes pod 仍然显示相同的错误。 standard_init_linux.go:211: exec user process caused "exec format error"

我的构建命令
docker buildx use m1_builder && docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6 -f Dockerfile -t ${myDockerRepo} --push . ''
在构建过程中,我看到每个平台都注销了它正在运行来自我的 Dockerfile 的命令。

我的推送命令
docker push ${myDockerRepo} 需要注意的一件奇怪的事情是 docker push 命令响应中的 sha256 摘要没有改变。

这是我的 docker 文件:

  1. # Use an official Node runtime as a parent image
  2. FROM node:10-alpine
  3. # copy the current directory contents into the container at /app
  4. copY dist /app
  5. # Set the working directory to /app
  6. workdir /app
  7. # Make port 8000 available to the world outside this container
  8. EXPOSE 8000
  9. # Run npm run serve:dynamic when the container launches
  10. CMD ["node","server"]

显然,我不是 Docker 专家。 从满头的头发开始。下降到 3 股。请保存那 3 条线。

感谢所有帮助和建议!

更新

我已将 M1 macbook 构建的映像拉到我的另一台 macbook 上,并且可以通过 docker 桌面在本地运行该映像。我不确定这意味着什么。难道这只是一个 kuebernetes 设置?

解决方法

尝试将 --platform=linux/amd64 添加到您的 dockerfile:

  1. FROM --platform=linux/amd64 node:10-alpine

Docker 镜像执行 golang 可执行文件:exec /usr/local/go/bin/go: exec 格式错误

Docker 镜像执行 golang 可执行文件:exec /usr/local/go/bin/go: exec 格式错误

docker 镜像执行 golang 可执行文件:exec /usr/local/go/bin/go: exec 格式错误

php小编苹果在使用Docker时可能会遇到一个常见的错误: "Docker 镜像执行 golang 可执行文件:exec /usr/local/go/bin/go: exec 格式错误"。这个错误通常是由于镜像中的golang可执行文件没有正确执行所导致的。解决这个问题的方法有很多,包括检查golang可执行文件的权限、查看可执行文件是否可访问、检查执行文件的路径是否正确等。通过解决这个问题,可以确保在Docker中正确执行golang可执行文件,提高代码开发的效率和稳定性。

问题内容

我知道如果 go 可执行文件要在另一台计算机上运行,​​我需要指定它的目标平台。我正在使用 m1 芯片在苹果机器上构建 docker 映像:

dockerfile

from --platform=linux/amd64 golang:alpine as build

workdir /

add go.mod .
add go.sum .
run go mod download
copy . .
run cgo_enabled=0 goos=linux goarch=amd64 go build -ldflags="-s -w" -o .

from --platform=linux/amd64 scratch

workdir /app
copy --from=build /foo /foo

cmd ["./foo"]
登录后复制

这似乎有效,因为在构建输出后检查容器

立即学习“go语言免费学习笔记(深入)”;

"architecture": "amd64",
"os": "linux"
登录后复制

但是当我现在使用 docker-compose 在 linux 服务器上启动映像时,出现错误: exec /usr/local/go/bin/go: exec format error

docker-compose.yml

foo:
    environment:
      - PORT=${PORT}
    image: docker.io/name/foo
    platform: linux/amd64
    ports:
      - "8000:8000"
    restart: always
登录后复制

我对 docker 还很陌生,所以我想我在这里遗漏了一些非常明显的东西。

解决方法

首先,我可以确认您已成功构建 amd64 二进制文件,因此这不是 go 问题。

如果我运行您的映像(在 amd64 linux 系统上),我不会收到您报告的相同错误。鉴于此 docker-compose.yaml:

foo:
    environment:
      - port=${port}
    image: docker.io/chedched/foo
    platform: linux/amd64
    ports:
      - "8000:8000"
    restart: always
登录后复制

运行 docker-compose up 时,我看到:

error: for images_foo_1  cannot start service foo: failed to create shim task:
oci runtime create failed: runc create failed: unable to start container
process: exec: "./foo": stat ./foo: no such file or directory: unknown
登录后复制

发生这种情况是因为您设置了 workdir /app,这使得 app 成为映像中的当前工作目录,但您已将二进制文件安装为 /foo。您需要:

  • 更改您的 cmd 以引用正确的位置:

    cmd ["/foo"]
    登录后复制

    或者...

  • 在 /app 中安装二进制文件:

    COPY --from=build /foo ./foo
    登录后复制

    通过这些更改中的任何一个,图像都会按预期运行。

    以上就是Docker 镜像执行 golang 可执行文件:exec /usr/local/go/bin/go: exec 格式错误的详细内容,更多请关注php中文网其它相关文章!

关于php exec()某个shell结果出错,原因是php中的 grep只能处理文本流,二进制流不行_PHP教程的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于cgo: exec gcc: exec: "gcc": 在 $PATH 中找不到可执行文件 Egress operator 安装错误、docker - 进入容器报错:OCI runtime exec failed: exec failed: container_linux.go:370: starting container pro、Docker buildx with node app on Apple M1 Silicon - standard_init_linux.go:211:exec 用户进程导致“exec 格式错误”、Docker 镜像执行 golang 可执行文件:exec /usr/local/go/bin/go: exec 格式错误的相关知识,请在本站寻找。

本文标签: