将端口80公开为Docker映像中的用户节点

时间:2018-10-12 13:51:41

标签: node.js docker

我编写了一个NodeJS服务器,试图在基于节点高山的Docker容器中运行。

我以Docker Node best practices的身份使用节点用户。

我当前正在使用端口9999,效果很好。

我想改用80和443端口,但似乎无法正常工作。

快速解决方案是仅使用root用户,但这似乎是一个棘手的解决方案。

主要问题是:

  • 节点用户可以公开端口80和443吗?如果可以,怎么办?

这也引起了一些其他问题:

  • 只坚持使用root用户会更好吗?
  • 在Docker映像中公开端口80和443是一个好主意吗?

对于它的价值,这是我的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

0 个答案:

没有答案