我编写了一个NodeJS服务器,试图在基于节点高山的Docker容器中运行。
我以Docker Node best practices的身份使用节点用户。
我当前正在使用端口9999,效果很好。
我想改用80和443端口,但似乎无法正常工作。
快速解决方案是仅使用root用户,但这似乎是一个棘手的解决方案。
主要问题是:
这也引起了一些其他问题:
对于它的价值,这是我的Dockerfile:
FROM node:10-alpine
ENV NODE_ENV production
WORKDIR /app
COPY api api
COPY packages/utils packages/utils
COPY package.json package.json
COPY yarn.lock yarn.lock
RUN npm uninstall --global npm \
&& apk add build-base python2 --no-cache \
&& yarn --frozen-lockfile --production \
&& rm -r /opt/yarn* yarn.lock
USER node
ENTRYPOINT ["node", "-r", "esm", "api/server.js"]
EXPOSE 9999