docker-compose 打包.netcore和vue项目
目录结构:
项目文件夹下面放:
api web文件夹
app vue文件夹
docker-compose.yml 文件
文件内容如下:
api下的Dockerfile:
.netcore镜像2.2,
镜像里的目录为code
复制当前主机下的Dockerfile所在的目录和文件到镜像中的code目录
FROM microsoft/dotnet:2.2-aspnetcore-runtime
WORKDIR /code
COPY . .
ENTRYPOINT ["dotnet", "project.dll"]
app下的Dockerfile:
nginx最新版本
镜像里的目录为/usr/share/nginx
复制当前主机下的Dockerfile所在的目录和文件到镜像中的/usr/share/nginx目录,如果存在会覆盖
FROM nginx:latest
WORKDIR /usr/share/nginx
COPY . .
docker-compose.yml内容如下:
docker-compose的版本为2
project为项目名称,启动2个服务,api和app,分别build2个镜像,
build:下的context为上下文目录,
dockerfile:为Dockerfile所在的上下文目录的位置,如下dockerfile为docker-compose.yml下的api/app下的Dockerfile
volumes: 映射 主机目录到镜像目录,如下为project/api/src下的目录映射到镜像/code目录
prots: 主机端口映射镜像端口,如下访问主机9089即为访问镜像80端口
version: "2"
services:
project_api:
image: img_project_api
build:
context: ./api
dockerfile: Dockerfile
volumes:
- "../project/api/src:/code"
ports:
- "9089:80"
project_app:
image: img_project_app
build:
context: ./app
dockerfile: Dockerfile
volumes:
- "../project/app/html:/usr/share/nginx/html"
ports:
- "9090:80"
在docker-compose.yml目录中
运行docker-compose build 生成2个image
运行docker-compose up -d 后台启动容器
docker-compose down 停止容器。