在docker容器中创建android模拟器时'sh:1:file:not found'('sh: 1: file: not found' when creating a android emulator inside a docker container)

我正在尝试在docker容器中创建一个android模拟器,但遇到了一些问题。

SDK更新和AVD创建成功,我尝试创建模拟器,出现以下错误:

./emulator -avd test-22 -no-skin -no-audio -no-window

sh: 1: file: not found

sh: 1: file: not found

WARNING: Cannot decide host bitness because $SHELL is not properly defined; 32 bits assumed.

ERROR: 32-bit Linux Android emulator binaries are DEPRECATED, to use them

注意:运行最后一个docker版本并使用java:8-jdk映像。

- 有些人告诉我为API22安装x86 intel ABI / ARM,但我无法找到包名,所以我可以通过命令行安装它。

I'm trying to create a android emulator inside a docker container but got some problems.

The SDK updates and AVD creation were successful and i try to create the emulator, the following error appears:

./emulator -avd test-22 -no-skin -no-audio -no-window

sh: 1: file: not found

sh: 1: file: not found

WARNING: Cannot decide host bitness because $SHELL is not properly defined; 32 bits assumed.

ERROR: 32-bit Linux Android emulator binaries are DEPRECATED, to use them

Notes: Running last docker version and using java:8-jdk image.

-- Some people told me to install a x86 intel ABI/ARM for the API22 but i cant manage to find the package name so i can install it by command line.

原文:https://stackoverflow.com/questions/37038320

更新时间:2020-06-08 21:06

最满意答案

我有同样的问题,我通过apt修复安装文件comman。 但是还没有工作,我会在找到解决方案时更新。

apt-get install -y --no-install-recommends file libmagic1 libglu1-mesa mesa-utils libpci3 pciutils libpulse0

编辑:我在将包添加到您的docker文件后找到了解决方案

添加您的docker文件这些命令也是如此

mv /bin/sh /bin/sh.backup

cp /bin/bash /bin/sh

并创建新的容器

--device /dev/dri --device /dev/video0 --device /dev/snd --device /dev/kvm

现在很可能是工作。

I have same issue and i fix this with install file comman via apt. But still not working yet, i will update when i found a solution.

apt-get install -y --no-install-recommends file libmagic1 libglu1-mesa mesa-utils libpci3 pciutils libpulse0

Edit: I found a solution after add packages to your docker file

add your docker file these commands too

mv /bin/sh /bin/sh.backup

cp /bin/bash /bin/sh

And create new container with

--device /dev/dri --device /dev/video0 --device /dev/snd --device /dev/kvm

Most probably is work now.

相关问答

更新: 所以现在的问题是: 没有回购或互联网连接,获得相同结果的最佳方法是什么? 您可以使用DockerHub上提供的各种非官方32位图像,搜索debian32 , ubuntu32 , fedora32等。 如果您不能信任它们,您可以自己构建这样的图像,并且您也可以在DockerHub上找到指令,例如: 在f69m/ubuntu32主页上,有一个指向用于生成图像的GitHub repo的链接; 在hugodby/fedora32主页上,有一个用于构建图像的命令示例; 等等。 或者,您可以根据某些

...

我建议如下: 创建容器时,将sql_dump_file.sql到/docker-entrypoint-initdb.d/ 。 官方的MariaDB映像将在启动时恢复它。 docker run -d --name -v d:/sql_dump_file.sql:/docker-entrypoint-initdb.d/sl_dump_file.sql

So a

...

在Windows 10和Docker for Windows beta上运行正常。 我会说一个过时的Docker设置或者你的机器上有东西被堵塞了。 如果您仍在运行boot2docker,请尝试切换到Docker for Windows 。 在旁注,任何时候我使用docker从linux主机它就像一个梦想,但Windows我总是失去与Windows特定问题摔跤的时间,npm安装似乎没有正常工作或挂起或需要多年,卷不在我的问题文件等。在windows / boot2docker上的docker是fub

...

如果你想实际映射你应该使用的端口 ivms:

build: .

container_name: ivms

command: bash bashes/createDB.sh

volumes:

- .:/code

ports:

- "8010:8010"

- "9001:9001" # now you can access them locally

警告您正在为这两个服务ivms和nginx使用相同的端口 EXPOSE指令通知Docker容器在运行时侦听

...

我决定离开詹金斯码头管道,改用原生码头突击队。 以下命令执行这个技巧。 注意:在任何情况下都不要使用git config部分! docker run --rm --privileged --name docker-builder \

-v /var/run/docker.sock:/var/run/docker.sock docker:dind \

/bin/sh -c 'apk add --no-cache git && \

git config --global http.sslVerify

...

1.-您启动的第一个容器(您启动另一个容器的容器)必须使用--privileged=true标志运行。 2.-我认为没有。 3.-使用特权标志,您不需要将docker套接字作为卷装入。 选中此项目即可查看所有这些示例。 1.- The first container you start (the one you launch other one inside) must be run with the --privileged=true flag. 2.- I think there is not

...

我不确定使用〜/ .profile配置文件是做你想要的最好的方法。 此外,使用RUN source /root/.profile将不会产生任何影响,因为该行仅执行一次,并且在尝试执行de容器内的bash二进制文件时不会持久。 (它实际上会运行一个新的bash会话)。 所以..首先,你要做的配置应该在.bashrc文件中(因为它通常出现在那里)。 然后,正如bash手册页所说: 当bash作为交互式登录shell或作为具有--login选项的非交互式shell调用时,它首先从文件/ etc / pr

...

我有同样的问题,我通过apt修复安装文件comman。 但是还没有工作,我会在找到解决方案时更新。 apt-get install -y --no-install-recommends file libmagic1 libglu1-mesa mesa-utils libpci3 pciutils libpulse0

编辑:我在将包添加到您的docker文件后找到了解决方案 添加您的docker文件这些命令也是如此 mv /bin/sh /bin/sh.backup

cp /bin/bash

...