首页 新闻 会员 周边

使用阿里云容器服务部署自己的Docker镜像遇到的问题

0
悬赏园豆:100 [已解决问题] 解决于 2017-06-05 11:00

在阿里云容器服务中使用的编排文件是这么写的:

version: '3.2'
services:
  cache-service-default:
    image: microsoft/aspnetcore:2.0
    depends_on:
      - dotnet-publish
    volumes:
      - cache-service:/app
    command: bash -c "cd /app && dotnet Cnblogs.Cache.WebApi.dll"
  dotnet-publish:
    image: cache-service:latest
    volumes:
      - cache-service:/app/Cnblogs.Cache.WebApi/publish
    
volumes:
  cache-service:

(注:上面的cache-service是我们自己的镜像)

用这个编排文件部署“应用”总是失败:

事件中的错误日志如下:

Failed to start service cache-service-default_dotnet-publish, 1 tasks failed: finished 

其中有2个容器,一个能正常启动,一个不能正常启动:

而在自己的电脑上在docker-compose.yml中使用同样的“编排”, docker-compose up 可以正常运行。

请问如何解决这个问题?

问题补充:

问题与dotnet-publish这个容器启动后就停止有关(自己运行docker-compose的体现是: cacheservice_dotnet-publish_1 exited with code 0 ),dotnet-publish这个容器的目的是通过volumes共享文件给另外一个容器,所以停止并没有影响。但对于阿里云容器服务来说,只要其中一个服务对应的容器没有处于运行状态,整个应用就失败。

dudu的主页 dudu | 高人七级 | 园豆:30994
提问于:2017-06-05 10:04
< >
分享
最佳答案
0

在stackoverflow上(Docker-Composer exited with code 0)找到了很简单的的解决方法,给dotnet-publish容器添加 tty: true 配置,让这个容器启动后不退出运行即可。

version: '3.2'
services:
  cache-service-default:
    image: microsoft/aspnetcore:2.0
    depends_on:
      - dotnet-publish
    volumes:
      - cache-service:/app
    command: bash -c "cd /app && dotnet Cnblogs.Cache.WebApi.dll"
  dotnet-publish:
    image: cache-service:latest
    volumes:
      - cache-service:/app/Cnblogs.Cache.WebApi/publish
    tty: true
    
volumes:
  cache-service:
dudu | 高人七级 |园豆:30994 | 2017-06-05 10:59
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册