首页

在生产环境使用docker-compose启动轻量级的.net core项目

.Net Core 2.0发布有段时间了,之前不管是控制台应用程序开发,还是网站开发,都习惯安装.Net Core SDK,如果docker部署就安装SDK镜像,理论上没啥问题,但是microsoft/dotnet镜像得1.64G,如果不就结也没事。但是我们真心不希望在生产环境安装如此大的镜像,国内的网速,有时连一个镜像都没法下载成功。

最近我发现,微软其实提供了精简的对应镜像,看镜像名就知道,第一个是跑asp.net core,第二个是跑Console Application,完美
docker pull microsoft/aspnetcore
docker pull microsoft/dotnet:runtime

1. 安装
一个新安装的Centos 7.4首先安装两个小工具
$ sudo yum -y install net-tools wget

必要的组件的安装
$ sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

设置稳定版的下载源  
$ sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

安装,启动,开机启动
$ sudo yum install docker-ce
$ sudo systemctl start docker
$ sudo chkconfig docker on

2. docker-compose
使用docker-compose管理容器更加方便,尤其在一台机器上需要安装多个容器的情况下,尤为有用,它可以指定容器名字来彼此访问,相比容器间用IP访问,减少了出错,因为每次容器启动,IP可能变化。

安装docker-compose
$ sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

赋予执行权限
$ sudo chmod +x /usr/local/bin/docker-compose

查看版本
$ docker-compose --version

3. .Net Core
docker pull microsoft/aspnetcore
docker pull microsoft/dotnet:runtime

4. 制作两个dockerfile
Console
FROM microsoft/dotnet:runtime
COPY . /publish
WORKDIR /publish
EXPOSE 50088/tcp
CMD ["dotnet", "gRPCServer.dll"]
Web
FROM microsoft/aspnetcore:latest
COPY . /publish
WORKDIR /publish
EXPOSE 5000/tcp
VOLUME ["/publish/wwwroot"]
CMD ["dotnet", "asyons.com.dll", "--server.urls", "http://*:5000"]

5. docker-compose.yml
version: '3'
services:
asyons:
image: asyons:latest
build: ./asyons
ports:
- "5000:5000"
restart: always
container_name: asyons
volumes:
- /docker/asyons/wwwroot:/publish/wwwroot
- /docker/asyons/conf/appsettings.json:/publish/appsettings.json
command: dotnet asyons.com.dll
grpc:
image: grpc:latest
build: ./gRPC
ports:
- "50088:50088"
restart: always
container_name: grpc
command: dotnet gRpcServer.dll

6. 启动停止
docker-compose up -d
docker-compose stop

我这里省略了,代码开发,发布,大家自己新建两个项目,一个网站,一个控制台应用程序,然后使用docker-compose部署,启动。
from 爱施园
Posted by 森林 on 2017/11/13
Copyright ©2018 爱施园 粤ICP备14091834号