Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Docker容器(Ubuntu)中运行windows中创建的Go应用程序_Ubuntu_Go_Docker_Docker Container - Fatal编程技术网

在Docker容器(Ubuntu)中运行windows中创建的Go应用程序

在Docker容器(Ubuntu)中运行windows中创建的Go应用程序,ubuntu,go,docker,docker-container,Ubuntu,Go,Docker,Docker Container,我创建了一个非常简单的应用程序,可以输出一些文本 我的开发环境是Windows+Docker for Windows。我创建了ubuntu容器,并在Windows中为ubuntu构建了应用程序 set GOARCH=amd64 set GOOS=linux go build -o "myapp" 然后我将“myapp”文件复制到共享文件夹,并在容器的共享文件夹中查看它。 在我尝试在容器内运行它之后,出现了一个错误 为什么我不能运行它?它是否构建错误,或者我是否试图以错误的方式执行它 在win

我创建了一个非常简单的应用程序,可以输出一些文本

我的开发环境是Windows+Docker for Windows。我创建了ubuntu容器,并在Windows中为ubuntu构建了应用程序

set GOARCH=amd64
set GOOS=linux
go build -o "myapp"
然后我将“myapp”文件复制到共享文件夹,并在容器的共享文件夹中查看它。 在我尝试在容器内运行它之后,出现了一个错误

为什么我不能运行它?它是否构建错误,或者我是否试图以错误的方式执行它

在windows中,当我运行我的exe文件时,我有这个输出,我希望在Ubuntu中有相同的东西

更新 正如建议的那样,我尝试了。/myapp,但存在Exec格式错误


在ubuntu和其他linux系统上,只要
myapp
就会尝试从
PATH
环境变量中查找
myapp
。要特别查找当前目录中的可执行文件,需要使用:

./myapp
或者使用完整路径:

/__shared/myapp
更新:要使其工作,您的文件必须是可执行的。您可以使用
ls-l
对其进行验证:

ls -l
-rwxrwxr-x  1 user user    0 Feb  9 09:45 myapp
如果在第一列中至少没有看到一个“x”,则需要运行:

chmod +x myapp
有关此主题的更多信息,请参阅

更新:错误
无法执行二进制文件:Exec格式错误“
可能来自:

  • 系统架构与文件-->不匹配,请确保您的ubuntu计算机为64位版本,并比较
    uname-a
    file myapp
  • 根据,在VM的共享文件夹内运行文件(使用windows主机)可能会导致问题-->尝试将myapp复制到共享文件夹外

你试过了吗
/myapp
您在将结果复制到的位置写入,但不是从获取结果的位置写入。build命令使用了install命令以外的另一个目标目录。在运行build之后,我从src/myProject文件夹获取了结果。新文件出现在那里,我将其复制到containerIt's better,在我按您所说的那样调用之后。/myapp:无法执行二进制文件:Exec format error':)因此还有另一个问题更新了答案,请告诉我这是否解决了您的问题。它似乎是可执行的。>>root@7dd1655ae5db:/\uuu shared#ls-l>>total 1764>>-rwxr-xr-x 1 root root 1804288 2017年2月9日myappSimple测试表明这不是共享文件夹问题:)我尝试运行“file myapp”命令,并看到“bash:file:command not found”。你能告诉我,如果我需要安装一些东西来使用这个命令,或者可能有其他的:)无论如何,非常感谢!bash通常位于
/bin/bash
下。请尝试
echo$PATH
。如果为空,请使用导出路径=/bin/bash并重试。对于这类问题,我建议你先在谷歌上搜索,如果你自己都搞不懂的话,可以再发一个问题。我们能回答这个问题吗?