使用Docker-compose构建Dotnet应用程序

时间:2018-04-22 02:33:21

标签: .net docker docker-compose dockerfile devops

我正在寻找一些帮助来构建一个强大的docker-compose文件。 我在我的私人存储库中有我的docker镜像,之前我曾经拉过所有图像然后用来单独试用docker run命令来构建一个容器。现在我打算建立一个docker-compose文件。

使用的手动命令:

docker run --restart unless-stopped -t -d --name test_rest -p 9095:80 --entrypoint dotnet test_rest script_var.Core.dll test_var:MongoSource=mongodb://192.168.22.22 KafkaReceiveStream:KafkaBroker=192.168.22.22:9092 KafkaReceiveStream:KafkaTopic=testevents KafkaSendStream:KafkaTopic=test_key KafkaSendStream:KafkaBroker=192.168.22.22:9092

docker run --restart unless-stopped -t -d --name test_app1 -p 9096:80 --entrypoint dotnet test_app1 script_var.Core.dll test_var:MongoSource=mongodb://192.168.22.22

docker run --restart unless-stopped -t -d --name test_app2 --entrypoint dotnet test_app2 script_var.Core.dll

现在我想从上面的命令中构建一个docker-compose文件。

version: '2.1'
networks:
  mynetwork:
    driver: bridge
services:
  test_reste:
    image: test_rest
    ports:
      - "9095:80"
    networks:
      - mynetwork
  test_app1:
    image: test_app1
    ports:
      - "9096:80"
    networks:
      - mynetwork
  test_app2:
    image: test_app2
    networks:
      - mynetwork

我们如何在docker-compose文件中添加入口点,我试图添加

image: test_rest
   entrypoint:
     - dotnet
     - test_rest
     - script_var.Core.dll
     .
     .
     .

这是我得到的错误:

Did you mean to run dotnet SDK commands? Please install dotnet SDK from:
test_rest_1  |   http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409

有人可以帮助我如何解决这个问题?

提前致谢。

1 个答案:

答案 0 :(得分:0)

不确定是否最终弄清楚了这一点,但是放置ENTRYPOINT的位置在Dockerfile中,而不是docker-compose文件中。

所以您的Dockerfile可能看起来像这样:

FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 9095
EXPOSE 9096

FROM pathToYourImage AS build
WORKDIR /src

# ... you should already have a Dockerfile for your private repos images? ...

ENTRYPOINT ["dotnet", "test_rest.dll"]

编辑1:抱歉,您可以在撰写内容中添加入口点。例如:

entrypoint: ["dotnet", "test_rest.dll"]