node.js - NestJS 与 Docker 和 Portainer
问题描述
我正在尝试使用虚拟专用服务器启动我的项目。我已经安装了 Docker 和 Portainer,我可以开始这个项目了。但它没有在任何端口运行。我确实设置在端口 3000 中运行,但是当我输入浏览器 IP_Of_My_VPS:3000 时没有任何反应。我是 docker 新手,我所做的每个配置都是基于我的搜索。
此打印显示图像未在任何一个端口中运行。
这另一个打印显示我的应用程序正在运行(但我不知道如何访问它)。
我的码头配置:
FROM node:12-alpine
RUN apk --no-cache add curl
RUN apk --no-cache add git
RUN git --version
WORKDIR /app
COPY package*.json ./
RUN npm set progress=false && npm config set depth 0 && npm cache clean --force
RUN npm ci
COPY . .
RUN npm run build && rm -rf src
HEALTHCHECK --interval=30s --timeout=3s --start-period=30s \
CMD curl -f http://localhost:3000/health || exit 1
EXPOSE 3000
CMD ["node", "./dist/main.js"]
解决方案
当docker容器启动时,执行端口转发
举些例子,
docker run -p <your_forwarding_port>:3000 ~~~
# docker-compose.yaml
~~~
ports:
- "<your_forwarding_port>:3000"
~~~
你可以看到 ref
: docker-container port
: docker-compose port
推荐阅读
- spring-boot - 我想更改 AggregationResults 的返回类型
- c++ - 重载 operator() 和可变参数模板
- xcode - XCode 13.1 导致 Airpods 在 Monterey 上咝咝作响
- typescript - 有没有办法直接在 ES6 类方法上声明属性
- jsp - 为什么jsp apply struts2总是根据TLD显示标签url的属性id无效?
- javascript - 如何从 ISO 字符串 javascript 中获取日期
- python - 通过 boto3 创建 AWS S3 预签名 url 时如何设置文件的限制大小
- mysql - 如何将mysql安装到现有的docker文件
- powershell - 调用Webrequest,需要微软登录的网站 | 电源外壳
- amazon-web-services - AWS Lambda 触发器未在给定阶段部署资源时使用所需的端点进行更新