【发布时间】:2021-08-09 12:46:02
【问题描述】:
我正在尝试在 Azure 云上部署多个 Web 应用容器,以实现生产环境的 CI/CD 管道部署。 目前我已经使用 docker compose 文件构建了多个容器映像,该文件在 localhost 环境中运行良好。 我尝试将 docker 映像部署到 azure 容器注册表并使用 azure Web 应用程序服务运行它们,但它未能给出错误 "Cannot map container ports on ACI" 。 ACI 好像不支持端口映射!
谁能给我一个具体的解决方案来实现多容器部署的 CI/CD 部署?
应用技术栈:Nodejs 和 Angular
Docker:Windows 的 Docker 桌面(使用 Linux 容器构建镜像)
云:天蓝色
我在 Devops 领域没有太多经验,如果有人能指导我正确地为多容器 Web 应用程序实施 CI/CD 流程,那将会很有帮助。
感谢您的宝贵时间!
Docker 编写文件:
version: "3.4"
services:
frontend:
build: ./frontend
ports:
- "85:80"
expose:
- "85"
- "80"
networks:
- dev_network
depends_on:
- backend
backend:
build: ./backend
ports:
- "3000:8600"
expose:
- "3000"
- "8600"
networks:
- dev_network
networks:
dev_network:
driver: bridge
前端 Docker 文件:
# Stage 1: Compile and Build angular codebase
# Use official node image as the base image
FROM node:latest as build
# Set the working directory
WORKDIR /usr/local/app
# Add the source code to app
COPY ./ /usr/local/app/
# Install all the dependencies
RUN npm install
# Stage 2: Serve app with nginx server
FROM nginx:latest
COPY --from=build /usr/local/app/dist/ClientServicePortal /usr/share/nginx/html
# Expose port 80
EXPOSE 80
后端 Docker 文件:
FROM node:14-alpine
ENV NODE_ENV=production
WORKDIR /usr/src/app
COPY ["package.json", "package-lock.json*", "npm-shrinkwrap.json*", "./"]
RUN npm install --production --silent && mv node_modules ../
COPY . .
EXPOSE 3000 8600
CMD ["node", "server.js"]
【问题讨论】:
标签: node.js azure-devops docker-compose continuous-integration azure-aks