【问题标题】:Testing ASP.NET Core Docker Container with Travis CI使用 Travis CI 测试 ASP.NET Core Docker 容器
【发布时间】:2016-12-14 07:26:23
【问题描述】:

所以我已经配置了我的.travis.yml 来构建和测试我的 ASP.NET Core 项目,但现在我必须将它配置为在 docker 中运行。到目前为止一切顺利,我已经有了构建的 Dockerfile,但后来我开始想:

  • 我应该在 Docker 容器内部还是外部运行测试?或者这有关系吗?
  • 如果我应该在里面做,这怎么能实现?因为dotnet test 没有**/*/ 支持,而且我的容器没有运行我的bash 脚本。

更新:

  • 或者我应该在外面构建和测试,然后再创建 dockerimage?

Dockerfile 是:

FROM microsoft/dotnet:latest
ARG source=.
WORKDIR /usr/src/project

COPY $source .

RUN dotnet restore

EXPOSE 5000
CMD dotnet build **/*/project.json

.sh 是:

#!/bin/bash
cd test/
for D in `find ./ -maxdepth 1 -type d`
do
        if [ -a ./project.json ]
        then
            ( cd ${D}; dotnet test;)
        fi
done

非常感谢任何建议。

【问题讨论】:

  • 您介意分享一下您最终做了什么吗?
  • @valorl 对不起,我忘记了,我的解决方案在答案中

标签: bash docker asp.net-core dockerfile .net-core


【解决方案1】:

所以我决定只有在构建和测试成功的情况下才应该进行 docker 构建和发布

.travis.yml

language: csharp

sudo: required


solution: Solution.sln


mono: none

dotnet: 1.0.0-preview2-1-003177


services:

    - docker


install:

    - npm install -g bower

    - npm install -g gulp


before_script:

    - chmod a+x ./scripts/test.sh


script:

    - dotnet restore && dotnet build **/*/project.json

    - ./scripts/test.sh --quite verify

    - if [ "$TRAVIS_BRANCH" == "master" ] ; then 

      dotnet publish --no-build src/Main -o publish/ ;

      docker build -t project . ;

      fi

    

after_success: 

    - if [ "$TRAVIS_BRANCH" == "master" ] ; then 

      /* Push to docker repo */

      fi 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-23
    • 1970-01-01
    • 1970-01-01
    • 2020-06-15
    相关资源
    最近更新 更多