Linux sh can';无法运行可执行文件

Linux sh can';无法运行可执行文件,linux,docker,sh,alpine,Linux,Docker,Sh,Alpine,我尝试在alpine的docker容器中运行可执行文件: /usr/src/server#ls-l 总数57472 -rw-r--r--1根根目录166 Dec 29 12:22 Dockerfile -rwxr-xr-x 1根根目录58844530 Dec 29 12:35服务器 /usr/src/server#/server /bin/sh:./server:未找到 当尝试运行容器时,它会给我文件未找到错误,我遗漏了什么 Dockerfile FROM alpine:3.12.3 # C

我尝试在alpine的docker容器中运行可执行文件:

/usr/src/server#ls-l
总数57472
-rw-r--r--1根根目录166 Dec 29 12:22 Dockerfile
-rwxr-xr-x 1根根目录58844530 Dec 29 12:35服务器
/usr/src/server#/server
/bin/sh:./server:未找到
当尝试运行容器时,它会给我
文件未找到
错误,我遗漏了什么

Dockerfile

FROM alpine:3.12.3

# Create server directory
WORKDIR /usr/src/server

# Bundle server Source
COPY . .

# Expose Port and Start Server
EXPOSE 3000
CMD [ "./server" ]
生成Dockerfile(使用buildkit)


nexe stage一团糟,我仍在移植到webpack…

你是对的,ldd给了我一些错误:

加载共享库libstdc++.so.6时出错:没有这样的文件或目录(服务器需要)

加载共享库libgcc_.so.1时出错:没有这样的文件或目录(服务器需要)


使用debian解决了这些问题。

你说得对,ldd给了我一些错误:

加载共享库libstdc++.so.6时出错:没有这样的文件或目录(服务器需要)

加载共享库libgcc_.so.1时出错:没有这样的文件或目录(服务器需要)


使用debian解决了这些问题。

您从哪里获得
server
?请记住,alpine不使用Glibc,GNU dynamic loader也没有附带。Nexe生成了它:请共享此映像的Dockerfile内容。如果您的映像缺少所构建二进制文件的共享库,则会出现此错误。您可以运行
lddserver
,看看它会带来什么。还请注意,Alpine的一些核心库版本不同,可能会导致兼容性问题;查看Nexe文档,它看起来像是它的基础工具的阿尔卑斯变体,或者你可以构建一个基于Debian或Ubuntu的最终映像。它解决了,ldd给了我一些问题,Debian用完了,请回答而不是评论,以标记为已解决。你从哪里获得
服务器
?请记住,alpine不使用Glibc,GNU dynamic loader也没有附带。Nexe生成了它:请共享此映像的Dockerfile内容。如果您的映像缺少所构建二进制文件的共享库,则会出现此错误。您可以运行
lddserver
,看看它会带来什么。还请注意,Alpine的一些核心库版本不同,可能会导致兼容性问题;看看Nexe文档,它看起来像是它的基础工具的一个阿尔卑斯变体,或者你可以构建一个基于Debian或Ubuntu的最终映像。它解决了,ldd给了我一些问题,Debian用完了,请回答而不是评论,以标记为已解决。
FROM node:14 AS build-stage

# Create server directory
WORKDIR /usr/src/server 

# Install Nexe
RUN npm i nexe@3.3.7 -g

# Install Server Dependencies
COPY package*.json ./
RUN npm install --only=production

# Bundle server Source
COPY . .

# Build
RUN nexe app.js -r config/db.js -r config/email.js -r config/passport.js -r config/config.env \
                -r middleware/auth.js \
                -r models/Option.js -r models/Token.js -r models/User.js -r models/Votacao.js -r models/Voto.js \
                -r routes/auth.js -r routes/votacao.js \
                -t linux-x64-12.14.1 \
                -o server

# Copy to Build
FROM scratch AS export-stage
COPY --from=build-stage /usr/src/server/server /server