如何使用Travis CI将Dockerized应用程序部署到Azure Azure应用服务

时间:2019-07-21 17:44:36

标签: azure docker azure-web-sites travis-ci azure-web-app-service

背景

我有一个小的dockerized应用程序(只是由Create React App创建的Nginx服务的静态站点),我试图弄清楚如何部署到Azure App Service。 它在Github仓库中,我也为此设置了Travis CI管道。

问题

我遇到的麻烦实际上是通过Travis部署到Azure的。我的Travis CI单元测试通过了,但是部署似乎无声地失败了。它们看起来像已部署,输出显示为:

  

部署应用程序

     

HEAD在b284327上卸下

     

什么也没提交,工作树很干净

     

完成。您的版本以0退出。

我做了什么

我创建了一个新的App Service,然后在“实例详细信息”>“发布”选项下选择了“ Docker Image”。 然后我将其添加到我的.travis.yml

deploy:
  provider: azure_web_apps
  verbose: true
  skip_cleanup: true

在Travis内部,我设置了AZURE_WA_USERNAME,AZURE_WA_SITE和AZURE_WA_PASSWORD变量并触发了构建,但结果却不尽如人意。

没有错误消息或其他任何内容,我的站点仍显示默认的示例输出。在this article之后,似乎我需要从本地存储库配置部署。我看到的唯一方法是通过Deployment Center,但是这似乎需要我建立一个新的AzureDevops组织和项目,而我不想这样做。实际上,无论如何,我实际上还是尝试过此操作,并设法得到一个Failed to configure the service principal. Error: Insufficient privileges to complete the operation.错误,考虑到我是Azure帐户的所有者,这很奇怪。

我在Travis CI输出中找不到任何跟踪,在Azure中也找不到任何日志。

所以也许我的构建配置不正确? Travis CI documentation提到我必须确保.gitignore不排除构建工件,所以也许这是我的问题?我试着玩这个游戏,但是运气不好。

Dockerfile内容供参考:

FROM node:alpine as builder
WORKDIR '/app'
COPY package.json .
RUN npm install
COPY . .
RUN npm run build

FROM nginx
COPY --from=builder /app/build /usr/share/nginx/html

0 个答案:

没有答案
相关问题