【发布时间】:2017-04-28 20:09:51
【问题描述】:
我正在使用 Docker 构建一个电子节点应用程序,但我遇到了一些奇怪的行为。构建似乎成功,但是当我运行电子应用程序时,出现“未找到”错误,但文件确实存在。我可以 ls 文件和 cat 文件,但无法获取/执行文件。
$ docker -v
Docker version 17.03.1-ce, build c6d412e
Dockerfile:
FROM node:alpine
RUN mkdir -p /usr/src
WORKDIR /usr/src
COPY package.json /usr/src
RUN npm install
COPY . /usr/src
RUN npm run build:linux
ENTRYPOINT "/usr/src/docker-entrypoint.sh"
这将导致这个目录的生成:
/usr/src/app/builds/app-linux-x64
包含一堆文件,包括一个名为 app 的可执行文件。
/usr/src/app/docker-entrypoint.sh: line 5: ./app: not found
确实存在。
/usr/src/app/builds/app-linux-x64 # ls -lah
total 124472
drwxr-xr-x 4 root root 4.0K Apr 28 20:07 .
drwxrwxr-x 1 root root 4.0K Apr 28 20:07 ..
-rw-r--r-- 1 root root 1.0K Apr 28 20:07 LICENSE
-rw-r--r-- 1 root root 1.6M Apr 28 20:07 LICENSES.chromium.html
-rw-r--r-- 1 root root 24.3K Apr 28 20:07 blink_image_resources_200_percent.pak
-rw-r--r-- 1 root root 15 Apr 28 20:07 content_resources_200_percent.pak
-rw-r--r-- 1 root root 9.7M Apr 28 20:07 content_shell.pak
-rw-r--r-- 1 root root 9.7M Apr 28 20:07 icudtl.dat
-rw-r--r-- 1 root root 2.8M Apr 28 20:07 libffmpeg.so
-rwxr-xr-x 1 root root 19.4M Apr 28 20:07 libnode.so
drwxr-xr-x 2 root root 4.0K Apr 28 20:07 locales
-rw-r--r-- 1 root root 334.7K Apr 28 20:07 natives_blob.bin
-rw-r--r-- 1 root root 136.6K Apr 28 20:07 pdf_viewer_resources.pak
drwxr-xr-x 2 root root 4.0K Apr 28 20:07 resources
-rw-r--r-- 1 root root 970.2K Apr 28 20:07 snapshot_blob.bin
-rwxr-xr-x 1 root root 76.7M Apr 28 20:07 app
-rw-r--r-- 1 root root 159.4K Apr 28 20:07 ui_resources_200_percent.pak
-rw-r--r-- 1 root root 6 Apr 28 20:07 version
-rw-r--r-- 1 root root 58.7K Apr 28 20:07 views_resources_200_percent.pak
我能找到它:
/usr/src/app/builds/app-linux-x64 # ls -lah app
-rwxr-xr-x 1 root root 76.7M Apr 28 20:07 app
但我无法运行它:
/usr/src/app/builds/app-linux-x64 # ./app
/bin/sh: ./app: not found
【问题讨论】:
-
一些奇怪的东西
WORKDIR /usr/src COPY . /usr/src所以你从 .usr.src 复制到 /usr/src -
什么是应用程序,它是二进制还是 shell 脚本?如果是后者,文件的第一行是什么?
-
@user2915097 复制命令从 .并将它们复制到容器中,workdir 更改容器内的目录。构建上下文是一个完全不同的位置。
-
你能在容器内运行
file app吗?可执行文件可能与您尝试运行它的机器的体系结构不兼容
标签: linux docker filesystems docker-machine