在Docker中如何为Windows ServerCore的不同OS版本构建

时间:2018-07-13 08:41:56

标签: docker docker-for-windows windows-container

我正在尝试使用docker构建我的应用,但我需要能够定位Windowsservercore-ltsc2016(Windows 2016),windowsservercore-1709和windowsservercore-1803。

我唯一能想到的是每个体系结构一个单独的dockerfile,但这并不意味着如果将来有更改,就很容易进行更新。必须更改 n 个文件的数量。

另外,当您运行一个docker-compose文件时,还有一种自动方式可以轻松地确定您正在运行1803版本并使用该版本,还是最好为您使用的体系结构再次创建一个docker-compose文件

1 个答案:

答案 0 :(得分:0)

将args传递给dockerfile,然后根据TARGETOS变量进行相关操作。这适用于Linux,对于Windows,我想它是相似的,只是给您一些想法。

CMD:

    var count = 0;

    function cc(card) {
      // Only change code below this line

      if (card < 7){
        count++;
      } else if (card < 10){
        count;
      } else {count--;
  }

      if (count > 0){
        return count + " Bet"
      } else {
        return count + " Hold"
  }
      // Only change code above this line
    }

docker-compose.yml:

export TARGETOS=windowsservercore-1803
docker-compose build

Dockerfile:

services:
  my_name:
     build:
       context: .
       args:
         - TARGETOS