Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Docker图像:启动容器进程导致: exec:"app":$PATH中找不到可执行文件:未知

Docker图像:启动容器进程导致: exec:"app":$PATH中找不到可执行文件:未知
EN

Stack Overflow用户
提问于 2021-11-30 06:37:10
回答 2查看 579关注 0票数 0

我已经读了很多关于不同语言的类似的问题,没有一个是去的。

我刚刚创建了一个Dockerfile,其中包含了我在官方码头枢纽页面上遵循的指令

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
FROM golang:1.17.3

WORKDIR /go/src/app
COPY . .

RUN go get -d -v ./...
RUN go install -v ./...

CMD ["app"]

这是我的文件夹结构:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
users-service
 |-> .gitignore
 |-> Dockerfile
 |-> go.mod
 |-> main.go
 |-> README.md

如果有人需要看到一些代码,我的main.go就是这样的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package main

import "fmt"

func main() {
    fmt.Println("Hello, World!")
}
  1. 我运行了docker build -t users-service .
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ docker build -t users-service .
[+] Building 5.5s (11/11) FINISHED
 => [internal] load build definition from Dockerfile                                                                                                               0.1s
 => => transferring dockerfile: 154B                                                                                                                               0.1s 
 => [internal] load .dockerignore                                                                                                                                  0.0s 
 => => transferring context: 2B                                                                                                                                    0.0s 
 => [internal] load metadata for docker.io/library/golang:1.17.3                                                                                                   3.3s
 => [auth] library/golang:pull token for registry-1.docker.io                                                                                                      0.0s
 => [1/5] FROM docker.io/library/golang:1.17.3@sha256:6556ce40115451e40d6afbc12658567906c9250b0fda250302dffbee9d529987                                             0.3s
 => [internal] load build context                                                                                                                                  0.1s 
 => => transferring context: 2.05kB                                                                                                                                0.0s 
 => [2/5] WORKDIR /go/src/app                                                                                                                                      0.1s
 => [3/5] COPY . .                                                                                                                                                 0.1s
 => [4/5] RUN go get -d -v ./...                                                                                                                                   0.6s 
 => [5/5] RUN go install -v ./...                                                                                                                                  0.7s 
 => exporting to image                                                                                                                                             0.2s 
 => => exporting layers                                                                                                                                            0.1s 
 => => writing image sha256:1f0e97ed123b079f80eb259dh3e34c90a48bf93e8f55629d05044fec8bfcaca6                                                                       0.0s 
 => => naming to docker.io/library/users-service                                                                                                                   0.0s 

Use 'docker scan' to run Snyk tests against images to find vulnerabilities and learn how to fix them
  1. 然后我运行了docker run users-service,但是我得到了这个错误:

$ docker运行用户-服务 docker:来自守护进程的错误响应: OCI运行时创建失败: container_linux.go:380:启动容器进程导致: exec:"app":可执行文件未在$PATH: unknown中找到。

我记得我在中的GOPATH环境变量遇到了一些问题,可能是因为.有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-11-30 07:41:36

正式的Docker文档为构建Go映像提供了有用的说明:https://docs.docker.com/language/golang/build-images/

总之,您需要构建Go二进制文件,并且需要适当地配置CMD,例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
FROM golang:1.17.3

WORKDIR /app

COPY main.go .
COPY go.mod ./

RUN go build -o /my-go-app

CMD ["/my-go-app"]

构建容器:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ docker build -t users-service .

运行码头集装箱:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ docker run --rm -it users-service
Hello, World!
票数 2
EN

Stack Overflow用户

发布于 2021-11-30 07:14:35

您的"app“可执行二进制文件应该可以在您的$PATH中使用,以便在没有任何路径前缀的情况下全局调用。否则,您必须向可执行文件(如CMD ["/my/app"] )提供完整的路径。

此外,我建议使用ENTRYPOINT指令。ENTRYPOINT表示可执行文件的直接路径,而CMD表示提供给ENTRYPOINT的参数。

使用组合的RUN指令使您的图像层最小化,与使用多个RUN相比,您的整体图像大小会变得稍微小一些。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70171108

复制
相关文章
SpringMVC返回不带引号的字符串方案汇总
项目使用springboot开发的,大部分出参为json,使用的fastJson。
chenchenchen
2021/09/06
2.3K0
去除字符串中的双引号「建议收藏」
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/142601.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/31
2.7K0
【Python】字符串 ① ( Python 字符串定义形式 | 单引号定义法 | 双引号定义法 | 三引号定义法 | 字符串中包含单引号或双引号的处理方式 )
文章目录 一、Python 字符串定义形式 二、字符串中包含 单引号 / 双引号 一、Python 字符串定义形式 ---- Python 字符串定义形式 : 单引号定义法 : name = 'Tom' 双引号定义法 : name = "Tom" 三引号定义法 : 该定义方式与多行注释相同 , 使用 三引号 定义字符串 : 如果使用变量接收 , 那么定义的就是字符串 ; 如果没有变量接收 , 那么定义的就是多行注释 ; name = """Tom""" 代码示例 : # 单引号定义字符串 nam
韩曙亮
2023/04/07
3.2K0
【Python】字符串 ① ( Python 字符串定义形式 | 单引号定义法 | 双引号定义法 | 三引号定义法 | 字符串中包含单引号或双引号的处理方式 )
delphi字符串加引号_oracle 单引号
sp_qry.Close; sp_qry.SQL.Clear; sp_qry.SQL.Add(‘select * from item_info where item_clsno=’+quotedstr(sp_lb.KeyValue)); sp_qry.Open;
全栈程序员站长
2022/11/10
1.4K0
MySQL中的单引号和双引号
《请注意前方高能有引号!》提到过Oracle中引号的处理,其实不仅是Oracle,其他的数据库中,同样存在引号是否使用正确的问题,看到社区的这篇文章,就介绍了MySQL中对单引号和双引号的几种使用场景,可以借鉴学习。
bisal
2023/01/08
4.6K0
MySQL中的单引号和双引号
TeX中的引号
在TeX中,左引号是"“",右引号是"”"。输入一篇包含双引号的文章,你的任务时把它转换成TeX的格式。
Vincent-yuan
2020/05/26
1K0
python3 引号中嵌套引号
我们有时候需要在引号中嵌套引号。例如输入一段完整的代码print(str+'你好'),而代码中有引号。
py3study
2020/01/13
3.7K0
【说站】js字符串中的三种引号
2、单引号和双引号基本相同。反引号允许我们通过${…}在字符串中嵌入任何表达式。允许字符串换行。
很酷的站长
2022/11/24
1.5K0
tomcat返回cookie有双引号问题
2.问题发现 发现与平时的cookie属性不一样,多了一个version=1的额外项。 经了解还有version=0的场景。 因为代码是一致的,在其他tomcat版本执行,没有问题,所以想到是tomcat版本不一致导致的。 目前场景所用的版本为: tomcat 8.0.35 而正常可使用的tomcat版本是较高的版本8.5.6
MickyInvQ
2020/09/27
1.5K0
Python中单引号,双引号,3个单引号
我们知道Python以其易用性而著名,所以刚开始看教程学习看到单引号和双引号都可以使用会以为这是Python为了方便程序员,随便用哪个就好,不用担心用错。其实,背后的原因不只是这么简单。举个例子,想想I'm a big fans of Python.这个字符串应该怎么定义。
py3study
2020/01/13
3.8K0
获取字符串内双引号中的所有内容
测试字符串 String str = "[\"内容\",\"标题\"]"; 编码如下: package Action; import java.util.regex.Matcher; import java.util.regex.Pattern; public class demo { public static void main(String[] args) { String str = "[\"内容\",\"标题\"]"; Pattern p = Pattern.compile("\"
红目香薰
2022/11/29
4.5K0
获取字符串内双引号中的所有内容
Python 引号、注释、字符串
Python3.6.3    json==2.0.9    win10.0.17134
用户7886150
2021/01/13
9420
判断数组中是否包含某个元素,判断对象中是否包含某个属性,判断字符串中是否包含某个字符串片段[通俗易懂]
缺点: hasOwnProperty:是用来判断一个对象是否有你给出名称的属性或对象。不过需要注意的是,此方法无法检查该对象的原型链中是否具有该属性,该属性必须是对象本身的一个成员。
全栈程序员站长
2022/09/28
3.3K0
[oeasy]python0052_ raw格式字符串_单引号_双引号_反引号_ 退格键
转义字符回忆上次内容最近玩的是\n、\r 之外的转义序列 \a是 ␇ (bell)\t是 水平制表符\v是 换行不回车通过 16 进制数值转义 \xhh把(hh)16 进制对应的 ascii 字符输出通过 8 进制数值转义 \ooo把(nnn)8 进制对应的 ascii 字符输出这次加了 转义输出 反斜杠本身 \\ 输出 \总是转义 还是挺麻烦的能否直接输出原样输出呢?搜索帮助找到raw stringrawr的含义是 raw原始原样如果是有r就原样输出为什么raw就是原始原样呢?raw生的食物 没有
oeasy
2023/01/17
1.7K0
[oeasy]python0052_ raw格式字符串_单引号_双引号_反引号_ 退格键
Bash Shell 中单引号和双引号的区别
你会经常在 Linux 命令行中使用引号,处理文件名中的空格?你使用引号。处理特殊字符?你再次使用引号。
网络技术联盟站
2022/04/12
3.7K0
Bash Shell 中单引号和双引号的区别
php中的双引号与单引号的基本使用
PHP字符串变量用于存储并处理文本, 在创建字符串之后,我们就可以对它进行操作。我们可以直接在函数中使用字符串,或者把它存储在变量中
itclanCoder
2023/09/14
5900
php中的双引号与单引号的基本使用
shell字符串单双引号的坑
运行非常成功!结果正常输出!然后我就愉快地去重并call variant,但是当我查看g.vcf文件时发现样本名为W0
生信技能树
2021/02/04
5K0
python笔记22-literal_eval函数处理返回json中的单双引号
在做接口测试的时候,最常见的接口返回数据就是json类型,json类型数据实际上就是字串,通常标准的json格式是可以转化成python里面的对应的数据类型的 有时候开发返回的数据比较坑,不按常理出牌,如下这种,result对应的是一个list数据,却又加了单引号变成了一个字符串 严格意义来讲,json串里面应该都是双引号,这种单双交替的就尴尬了
上海-悠悠
2018/07/25
2.4K0
python笔记22-literal_eval函数处理返回json中的单双引号
json.loads()的字符串中为单引号引发的错误
Traceback (most recent call last): File "G:/FastWorkStateServer/logs/redis_fabu.py", line 20, in <module> print(json.loads(str2)) File "D:\python3.6.5\lib\json\__init__.py", line 354, in loads return _default_decoder.decode(s) File "D:\python3.6.5\lib\json\decoder.py", line 339, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "D:\python3.6.5\lib\json\decoder.py", line 355, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)
用户1558882
2018/10/10
3.3K0
点击加载更多

相似问题

匹配句子中的多引号

23

强迫包含引号的句子为字符串- Java

41

如何返回字符串“句子”中的字数

15

LINQ根据引号将字符串拆分成句子

41

如何提取段落中的某个句子?Python

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文