无法更改 AWS Docker ubuntu 实例内的权限

无法更改 AWS Docker ubuntu 实例内的权限

我正在尝试在 AWS ubuntu docker 容器中运行 discord 机器人。

我的 Dockerfile 如下所示:

FROM ubuntu 
ADD hydrabot.exe /
ADD bot_config.json /
ADD client_secrets.json /
ADD Cyberbit.ttf /
ADD credentials.txt /
ADD performance.png /
CMD ["./hydrabot.exe"]

我已经跑了;

cd /dockerfiledirectory
sudo chown 1001:1001 /dockerfiledirectory
docker build -t arbitraryname .

现在我尝试运行: docker run -–restart=always arbitraryname

但我收到了错误;

docker: Error response from daemon: OCI runtime create failed: container_linux.go:380: starting container process caused: exec: "./hydrabot.exe": permission denied: unknown.

我已经阅读了一些堆栈主题,它表示尝试设置本地 aws 目录权限以按当前方式执行;-rw-rw-r-- 1 ubuntu ubuntu 45612135 Jan 27 12:25 hydrabot.exe

我尝试了两种方法chmod -x hydrabot.exesudo -x hydrabot.exe但当我重新检查时,权限都没有改变。

答案1

根据评论并结合您的问题,您正在尝试运行:

  • Windows 可执行文件
  • ... 在 Ubuntu Docker 镜像中
  • ... 在 Ubuntu AWS EC2 实例内部。

这根本行不通。首先,要在 Docker 中运行 Windows 可执行文件,无论如何,你必须使用视窗Docker 映像。您正在尝试使用 Ubuntu 映像。

但即使你尝试使用类似microsoft/windowsservercore图像的东西作为基础,在 Ubuntu EC2 实例上也无法使用。Docker 是一种容器化技术,它要求根据由于内核在主机和容器之间共享,因此操作系统能够运行应用程序。

此外,我很担心。我可能错了,但我感觉你试图运行的可执行文件是恶意软件。根据我的(公认的快速)研究,Hydra Bot 不是以可执行文件的形式分发的(无论是 Windows 还是 Linux)。它是一个服务通过在其网站上注册提供,然后邀请机器人加入您的 Discord 频道。

再说一次,我可能错了,但如果我没有——请确认来源并非常小心地尝试运行来自不受信任来源的可执行文件。

相关内容