【发布时间】:2021-05-01 00:46:15
【问题描述】:
我有最便宜的实例操作系统 AWS Lightsail(512 MB RAM,1 个 vCPU,20 GB SSD)和 Ubuntu 20.04,我正在尝试部署一个包含 5 个容器的项目(django、react、nginx 、postgres、redis 和 celery) 使用 docker-compose(我手动安装的)。
django 构建成功,但是 docker 在 react 构建期间返回 137 错误。似乎我使用的库之一在节点 14.16.1 处具有已弃用的依赖项:
npm WARN deprecated chokidar@2.1.8: Chokidar 2 will break on node v14+.
Upgrade to chokidar 3 with 15x less dependencies.
npm WARN deprecated fsevents@1.2.13: fsevents 1 will break on node v14+ and could be using insecure binaries.
Upgrade to fsevents 2.
我不知道 npm 是否正在尝试通过升级软件包来解决这些问题,但这需要 docker 花费大量时间才能继续,直到发生以下两种情况之一:
- docker 抛出错误 137;
The command '/bin/sh -c apk add --no-cache --virtual .gyp python make g++ && npm install && apk del .gyp' returned a non-zero code: 137
ERROR: Service 'react' failed to build : Build failed
- 我失去了与我的实例的连接,并且几个小时都无法连接到它。 AWS 返回以下错误:
UPSTREAM_NOT_FOUND [519]
发生 OOM 问题是因为我正在尝试构建机器不支持的东西?或者我可以调整一些配置以使其工作吗?我该如何解决这个问题?
Dockerfile:
###########
# BUILDER #
###########
FROM node:14.16.1-alpine3.10 as builder
WORKDIR /app/react
# install dependencies and avoid `node-gyp rebuild` errors
COPY ./package.json .
RUN apk add --no-cache --virtual .gyp \
python \
make \
g++ \
&& npm install \
&& apk del .gyp
COPY . .
RUN npm run build
#########
# FINAL #
#########
FROM node:14.16.1-alpine3.10
WORKDIR /app/react
# install serve - deployment static server suggested by official create-react-app
RUN npm install -g serve
COPY --from=builder /app/react/build ./build
非常感谢!
【问题讨论】:
-
你了解上游构建和下游构建吗?你给反应的东西很好吗??
标签: amazon-web-services docker docker-compose dockerfile amazon-lightsail