我如何在Docker群中使用Dockerfile?

时间:2019-03-22 08:23:08

标签: docker

我在Windows Server Core 2016中使用Docker群 我正在尝试使用docker stack deploy -c docker-compose.yml

创建容器 #

这是我的YML文件:

version: "3"
services:
db:
    image: microsoft/mssql-server-windows-express
    networks: 
       - cpxnet2           
    deploy:         
       environment:
          - SA_PASSWORD=Abcd1234
          - ACCEPT_EULA=Y         
web:
    image: microsoft/iis:latest
    build: .
    networks: 
       - cpxnet2                 
    deploy:
        resources:
            limits:
                memory: 500M    
    ports:
     -  "800:80"
    depends_on:
        - db  
networks: 
    cpxnet2:

这是我的Dockerfile:

FROM microsoft/iis:latest
RUN powershell -NoProfile -Command Remove-Item -Recurse C:\inetpub\wwwroot\*
WORKDIR /inetpub/wwwroot
COPY ./index.html /index.html

这是创建后我的容器内容:

目录:C:\ inetpub \ wwwroot

  

模式LastWriteTime长度名称   ---- ------------- ------ ----   -a ---- 3/13/2019 10:56 AM 703 iisstart.htm   -a ---- 3/13/2019 10:56 99710 iisstart.png

它至少应删除旧文件并复制我的index.html文件 但这不会发生!我该怎么办?

感谢您的支持!

1 个答案:

答案 0 :(得分:1)

build命令中使用compose-file时,不能在docker-compose.yml中使用docker stack deploy。因此,发生的事情是它拍摄了图像microsoft/iis:latest而忽略了build

看看官方文档:https://docs.docker.com/compose/compose-file/#build

  

注意:在集群模式下以以下方式部署堆栈时,将忽略此选项:   一个(版本3)撰写文件。 docker stack命令仅接受   预制图像。

您要做的是在运行docker stack deploy命令之前先构建映像,然后将image与映像名称一起使用。