在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
参照下面,搭建好开发环境、Docker及配置好Docker加速器http://www.cnblogs.com/windchen/p/6257846.html 参照下面,将windows共享目录挂载到Ubuntu虚拟机http://www.cnblogs.com/windchen/p/6236299.html 假设:D:\projects --> /mnt/projects 参照下面,在Ubuntu上安装好docker composehttp://www.cnblogs.com/windchen/p/6239494.html 下载asp.net core运行镜像和构建发布镜像docker pull microsoft/aspnetcore docker pull microsoft/aspnetcore-build 建立asp.net core网站打开windows命令行工具,建立目录 mkdir D:\projects\first-web\src cd D:\projects\first-web\src dotnet new -t web 修改网站Url打开Program.cs文件,添加红色字部分 public static void Main(string[] args) { var host = new WebHostBuilder() .UseKestrel() .UseUrls("http://*:5000") .UseContentRoot(Directory.GetCurrentDirectory()) .UseIISIntegration() .UseStartup<Startup>() .Build(); host.Run(); } 利用docker compose建立build、publish环境登入Ubuntu,进入Project目录,建立docker-compose.yml文件cd /mnt/projects/first-web mkdir -p docker/build vi docker/build/docker-compose.yml 输入内容: version: "2" services: build-env: build: ../../src container_name: build-env 建立script:cd /mnt/projects/first-web mkdir scripts vi scripts/build-publish.sh chmod +x scripts/build-publish.sh 输入如下内容: basepath=$(cd `dirname $0`; pwd) echo "goto build folder" cd $basepath/../docker/build echo "run build" docker-compose build echo "run down" docker-compose down echo "run up" docker-compose up echo "copy published files" docker cp build-env:/publish/bin $basepath/../ 建立生成build镜像的Dockerfilecd /mnt/projects/first-web vi src/Dockerfile 输入内容: FROM microsoft/aspnetcore-build WORKDIR /build COPY project.json . RUN dotnet restore COPY . . RUN dotnet publish -o /publish/bin/ -c Release 现在执行build-publish.sh就可以将code build并发布到Project的bin目录了 cd /mnt/projects/first-web ./scripts/build-publish.sh
利用docker compose建立proxy和web环境建立生成web环境的Dockerfilecd /mnt/projects/first-web vi bin/Dockerfile 输入内容: FROM microsoft/aspnetcore WORKDIR /web COPY . . 建立生成proxy镜像的Dockerfilecd /mnt/projects/first-web mkdir -p docker/nginx vi docker/nginx/Dockerfile 输入如下内容: FROM nginx COPY my.nginx.conf /etc/nginx/conf.d/default.conf EXPOSE 80 在上面相同目录建立my.nginx.conf,输入 server { listen 80; location /{ proxy_pass http://web:5000; } } 建立启动container的compose文件cd /mnt/projects/first-web vi docker/docker-compose.yml 输入内容: version: "2" services: web: build: ../bin container_name: web entrypoint: "dotnet build.dll" proxy: build: ./nginx container_name: proxy ports: - 80:80 links: - web tty: true 建立启动nginx和web的shell脚本cd /mnt/projects/first-web vi scripts/start-web.sh chmod +x scripts/start-web.sh 输入如下内容: basepath=$(cd `dirname $0`; pwd) echo "goto build folder" cd $basepath/../docker/ echo "run build" docker-compose build echo "run down" docker-compose down echo "run up" docker-compose up -d
至此准备工作已经完成,可以启动proxy跟web了cd /mnt/projects/first-web 查看网站是否正常运行: curl http://localhost
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论