我对 AWS 完全陌生,但几个月来我一直在本地运行我的 dockerized 应用程序,没有任何问题。现在我正在尝试通过 AWS ECS/Fargate 部署此应用程序,我的容器因以下 linux 错误而反复停止: standard_init_linux.go:219: exec user process caused: exec format error
。此错误似乎表明 Fargate 中的架构无法识别我正在运行的 Linux 命令之一,但我无法在任何地方找到关于如何找到正在运行的架构或如何追踪导致的特定命令的好答案问题。
这些是我用于前端和后端的 Dockerfile。该项目构建在 MERN 堆栈中,分为前端 (React) 和后端 (MongoDB/Express)
前端:
FROM alpine:3.10
ENV NODE_VERSION 15.9.0
WORKDIR /frontend
COPY package*.json ./
RUN apk add --no-cache nodejs npm
# some packages rely on gyp so we need this
# pulled from https://github.com/nodejs/docker-node/issues/282
RUN apk add --no-cache --virtual .gyp
python
make
g++
&& npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]
后端:
FROM alpine:3.10
ENV NODE_VERSION 15.9.0
WORKDIR /backend
COPY package*.json ./
RUN apk add --no-cache nodejs npm
# some packages rely on gyp so we need this
# pulled from https://github.com/nodejs/docker-node/issues/282
RUN apk add --no-cache --virtual .gyp
python
make
g++
&& npm install --silent
&& apk del .gyp
COPY ./ ./
EXPOSE 8080
CMD ["npm", "start"]
任何帮助将不胜感激!
简短回答:
docker buildx build --platform=linux/amd64 -t <image-name> .