标签: continuous-deployment

使用 teamcity 将 dotnet core 部署到 azure 应用程序服务

我有一个 dotnet 核心应用程序。我正在 teamcity 中构建管道。一旦 teamcity 检测到源代码中的更改,它就会下载源代码并运行 dotnet Restore dotnet build

并将输出文件夹中的内容复制到 Azure 应用服务。

我相信要运行应用程序,我需要运行命令 dotnet nameoftheprojectdll.dll

但我如何在应用程序服务上运行此命令。我需要将此命令作为构建脚本的一部分运行。

teamcity continuous-deployment .net-core azure-web-app-service

1
推荐指数
1
解决办法
1881
查看次数

Ansible 解档模块 - “src”参数的模式匹配

构建配置中,CI 服务器构建一个Service包,为其分配特定的Version,然后将其归档到文件:Service-Version.tgz

部署配置中,同一个 CI 服务器会下载此类名称可变的包。此配置需要复制存档、解压并将服务部署到某个主机上。

用 Ansible 代码表达:

 - name: Unpack Service on remote host
   unarchive: src="{{ src_dir }}/Service-*.tgz" dest="{{ host_dest_dir }}"
Run Code Online (Sandbox Code Playgroud)

理想情况下:Ansible 会尝试匹配模式中文件名的任何内容。

事实上,这是行不通的:

fatal: [127.0.0.1]: FAILED! => {"changed": false, "failed": true, "msg": "Unable to find '(...)/deploy/Service-*.tgz' in expected paths."}
Run Code Online (Sandbox Code Playgroud)

如何让 Ansible 接受“src”的可变名称?

(我想我可以通过 grep 目录创建一个注册真实姓名的任务,但这也许可以Ansible 本身中完成?)

deployment continuous-deployment ansible

1
推荐指数
1
解决办法
4952
查看次数

错误:合并到主分支后缺少绑定“binding.node”

我尝试在 GitLab 的一个分支中的 CI/CD 中配置自动代码覆盖率,并且管道在分支内完美通过,但是当管理员将更改合并到主分支时,管道由于缺少绑定而失败。

我曾经gitlab-ci.yml在其中配置我的作业。我没有任何使用管道的经验,所以这对我来说几乎是一个反复试验的任务。

最后,我得到了对我有用的配置,它不会破坏任何东西并根据需要生成覆盖范围。但是,由于它在成功构建之前显示无空间错误,因此我不得不强制清除缓存以使作业正常运行。在我的分支中,管道通过而没有任何错误,我通过多次重新运行来进行双重检查。但是一旦管理员合并了分支,它突然开始产生以下错误:

ERROR in Module build failed: Error: Missing binding /builds/internal/employee_portal/node_modules/node-sass/vendor/linux-x64-64/binding.node
Node Sass could not find a binding for your current environment: Linux 64-bit with Node.js 10.x

Found bindings for the following environments:
  - Linux 64-bit with Node.js 11.x

This usually happens because your environment has changed since running `npm install`.
Run `npm rebuild node-sass` to download the binding for your current environment.
    at module.exports (/builds/internal/employee_portal/node_modules/node-sass/lib/binding.js:15:13)
    at Object.<anonymous> (/builds/internal/employee_portal/node_modules/node-sass/lib/index.js:14:35)
    at Module._compile …
Run Code Online (Sandbox Code Playgroud)

continuous-integration pipeline continuous-deployment gitlab docker

1
推荐指数
1
解决办法
870
查看次数

Azure 应用服务持续部署 Webhook 不起作用

(我已经在微软论坛上问过,但没有得到答案。)

我有一个使用私有注册表且启用了持续部署的应用服务。该应用程序运行正常,但持续部署的 Webhook URL 不起作用。

这是对 webhook 的 HTTP GET 请求的输出:

$ curl https://\$MySiteName:SomeLongPassword@mysite.scm.azurewebsites.net/docker/hook
"No route registered for '/docker/hook'"
Run Code Online (Sandbox Code Playgroud)

Microsoft 论坛中有人告诉我尝试 POST 请求,因此输出如下:

$ curl -X POST https://\$MySiteName:SomeLongPassword@mysite.scm.azurewebsites.net/docker/hook
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE>Length Required</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
<BODY><h2>Length Required</h2>
<hr><p>HTTP Error 411. The request must be chunked or have a content length.</p>
</BODY></HTML>
Run Code Online (Sandbox Code Playgroud)

我还没有在 Microsoft Azure 文档中的任何地方找到如何使用 webhook。

azure webhooks continuous-deployment docker azure-web-app-service

1
推荐指数
1
解决办法
1195
查看次数

如何配置 heroku.yml 以使用 Heroku PostgreSQL 插件?

我目前所做的是通过使用 heroku.yml 构建 Docker 映像将我的 Django 应用程序部署到 Heroku 。该应用程序构建良好,但无法连接到数据库,因为主机配置不正确。我的heroku.yml配置是

setup:
  addons:
    - plan: heroku-postgresql
      as: DATABASE
build:
  docker:
    web: Dockerfile
  config:
    DJANGO_SETTINGS_MODULE: Django-BaaS.settings_docker
release:
  command:
    - python manage.py migrate
  image: web
run:
  web: gunicorn Django-BaaS.wsgi
Run Code Online (Sandbox Code Playgroud)

我的settings_docker

from .settings_base import *

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'psql',
        'HOST': 'DATABASE',
        'PORT': '5432'
    }
}
Run Code Online (Sandbox Code Playgroud)

我的理解是,这heroku.yml是一个类似于docker-compose.ymlso 我尝试用作DATABASE名称的文件HOST(并且我尝试使用localhost),但看起来两者都不是连接数据库的正确方法。

我寻求一些帮助来更正我的配置或设置文件以及如何在 heroku 的 docker CD 管道上使用 PostgreSQL …

django postgresql heroku continuous-deployment docker

1
推荐指数
1
解决办法
1643
查看次数

通过 Gitlab CI/CD 将 docker 服务部署到自己的服务器的正确方法

我的应用程序是使用 3 个 Docker 服务构建的:

  • 后端(反应)
  • 前端(Node.js)
  • nginx(路由流量)

到目前为止,我一直在手动登录自己的 Digital Ocean 服务器,克隆存储库并使用docker-compose build && docker-compose up.

我想从现在开始自动化这个过程。

鉴于 Gitlab CI/CD Pipelines 和运行程序,将代码自动部署到 Digital Ocean 服务器的最佳方法是什么?

[我在想什么,可能看起来很“初学者”]

想法 1:一旦将提交推送到 master -> Gitlab runner 将构建服务,然后通过 .gitlab 将其复制到 DO 服务器scp。问题:您如何启动服务?您是否通过ssh运行程序连接到 DO 服务器,然后在那里运行启动脚本?

想法 2:在 DO 服务器上注册一个 worker,这样当它从 Gitlab 拉取数据时,它在 DO 服务器上拥有代码。它只需要构建它们并运行。但是这种方法不可扩展并且看起来很笨拙。

我正在寻找一些思考指南或循序渐进的方法。

continuous-integration continuous-deployment gitlab docker

1
推荐指数
1
解决办法
1853
查看次数

通过 GitLab 在 Firebase 上部署 React 应用程序时出现“eslint:权限被拒绝”

我目前正在尝试通过 GitLab 为 Firebase 上托管的 React 应用程序设置 CI。我正在努力克服这一点。还有其他一些帖子建议使用 sudo 但控制台告诉我找不到该命令。

\n\n

任何帮助将不胜感激。感谢您。

\n\n

这是我当前的配置:

\n\n

gitlab-ci.yml 配置文件

\n\n

\r\n
\r\n
image: node:10.15.3\r\n\r\ncache:\r\n  paths:\r\n  - node_modules/\r\n\r\nstages:\r\n  - build\r\n  - deploy\r\n    \r\ndeploy_dev:\r\n  stage: deploy\r\n  script:\r\n    - echo "Deploying to staging environment"\r\n    - npm install -g firebase-tools\r\n    - firebase deploy --token $FIREBASE_DEPLOY_KEY --project $CI_ENVIRONMENT_NAME\r\n  environment:\r\n    name: dev\r\n  only:\r\n    - master
Run Code Online (Sandbox Code Playgroud)\r\n
\r\n
\r\n

\n\n

包.json

\n\n

\r\n
\r\n
{\r\n  "name": "react-app",\r\n  "version": "0.1.0",\r\n  "private": true,\r\n  "dependencies": {\r\n    "bootstrap": "^4.4.1",\r\n    "firebase": "^6.6.2",\r\n    "firebase-functions": "^3.3.0",\r\n …
Run Code Online (Sandbox Code Playgroud)

continuous-integration continuous-deployment gitlab firebase reactjs

1
推荐指数
1
解决办法
865
查看次数

Azure 发布管道 (YAML) IIS Web 部署在锁定文件上失败,生成 ERROR_FILE_IN_USE

实际的

部署时发布管道失败

预期的

部署不会失败

根本原因

文件“Microsoft.Data.SqlClient.SNI.x86.dll”被外部进程锁定,即使“使应用程序脱机标志”设置处于打开状态

解决方法

手动回收应用程序池并重新运行失败的部署。

当使用“recycleAppPool”应用“Action IIS Application Pool”设置时,尝试自动回收也失败。

信息

错误信息

Error Code: ERROR_FILE_IN_USE More Information: Web Deploy cannot modify the file 'Microsoft.Data.SqlClient.SNI.x86.dll' on the destination because it is locked by an external process.

In order to allow the publish operation to succeed, you may need to either restart your application to release the lock, or use the AppOffline rule handler for .Net applications on your next publish attempt.

Learn more at: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_FILE_IN_USE. Error: The process cannot …
Run Code Online (Sandbox Code Playgroud)

yaml continuous-deployment azure-devops azure-pipelines-release-pipeline microsoft-data-sqlclient

1
推荐指数
1
解决办法
2055
查看次数

无法创建 GitLab CI/CD 下游管道 - 规则配置阻止添加作业

我正在使用 GitLab CI/CD,并且有一个管道,其中包含来自单独配置文件的作业,该管道似乎工作正常。它看起来像这样:

.gitlab-ci.yml

stages:
  - triggers
  - build
  - test
  - deploy

trigger_infra:
  stage: triggers
  trigger:
    include: src/infra/.gitlab-ci.yml
  rules:
    - changes:
      - src/infra/lib/spa-stack.ts
Run Code Online (Sandbox Code Playgroud)

src/infra/.gitlab-ci.yml

deploy_spa:
  stage: deploy
  script:
    - cd src/spa
Run Code Online (Sandbox Code Playgroud)

然而,我最近遇到了以下场景:

  1. 上推更改spa-stack.ts文件的代码;构建已触发并通过
  2. 向 master 创建合并请求;构建已触发并出现错误!
  3. 合并为master;构建已触发并通过

合并构建的错误消息是“无法创建下游管道,管道不会为选定的触发器运行。规则配置阻止将任何作业添加到管道中。”

我在这里缺少什么?下游作业没有规则配置,所以我觉得它应该总是运行,不问任何问题。

continuous-integration continuous-deployment gitlab gitlab-ci gitlab-ci-runner

1
推荐指数
1
解决办法
3343
查看次数

当 ssh 部署失败时,Jenkins 构建通过

我在 Jenkins 构建步骤中使用 here 标记通过 ssh 发送我的部署命令,不幸的是,即使 here 标记内的命令没有成功完成,构建也会通过: ssh user@host <<EOF cd /path/to/app git pull bower install npm install grunt build cp -r /path/to/app/dist/* /path/to/dist/ forever restartall exit EOF

有没有更好的方法来解决这个问题?

deployment ssh automated-tests continuous-deployment jenkins

0
推荐指数
1
解决办法
2248
查看次数