标签: devops

以编程方式为 GCP 的 OAuth 2.0 客户端 ID 中的授权重定向 URI 添加 URI

我正在尝试找到一种方法,以编程方式在 GCP 中的 OAuth 2.0 客户端 ID 中添加用于授权重定向 URI 的 URIS,无论是 python 包还是 gcloud 。尝试查找文档但找不到任何 . 有人可以告诉我是否有任何方法可以做到这一点,而不是手动添加。

在此输入图像描述

在此输入图像描述

请在 GCP 中找到我想要添加网址的位置。

python oauth-2.0 google-cloud-platform gcloud devops

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

如何仅在 Gitlab 中更改的文件上运行 pylint?

我试图仅在更改的 python 文件上运行 pylint,但我的构建始终失败。我已经通过 git diff 提取了更改的文件并将它们保存在变量中,但是当我将变量注入 pylint 调用时,它失败了。然而,它对于硬编码的文件名工作得很好。这是我的 yaml:

pylint:
stage: test
  before_script:
    - pip install pylint pylint-exit anybadge
  script:
      - echo CI_COMMIT_SHA=${CI_COMMIT_SHA}
      - echo CI_MERGE_REQUEST_TARGET_BRANCH_NAME=${CI_MERGE_REQUEST_TARGET_BRANCH_NAME}
      - git fetch origin ${CI_MERGE_REQUEST_TARGET_BRANCH_NAME}
      - FILES=$(git diff --name-only ${CI_COMMIT_SHA} origin/${CI_MERGE_REQUEST_TARGET_BRANCH_NAME} | grep '\.py'$)
      - echo "Changed files are $FILES"
      - pylint --output-format=text $(find -type f -name "$FILES" ! -path "**/.venv/**") | tee ./pylint/pylint.log || pylint-exit $?
      - PYLINT_SCORE=$(sed -n 's/^Your code has been rated at \([-0-9.]*\)\/.*/\1/p' ./pylint/pylint.log)
      - anybadge --label=Pylint --file=pylint/pylint.svg --value=$PYLINT_SCORE …
Run Code Online (Sandbox Code Playgroud)

python pylint gitlab gitlab-ci devops

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

如何在Azure Devops YAML脚本中执行算术运算?

我试图根据逻辑获取一些值来形成我的点网应用程序的版本号。

我正在使用 Azure DevOps 并创建了一个管道 (YAML)。在管道中,我创建了几个变量,它们通过使用一些计算逻辑来获取值。下面是代码。

variables:
  solution: '**/*.sln'
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Release'
  old_date: '20210601'
  latest_date: '20210603'
  PSI: ($(latest_date)-$(old_date))/56+1
  totalsprints: '($(latest_date)-$(old_date))/14'
  sprint: '$(totalsprints)%4+1'
  majorversion: '2.'
  dot: '.'

name: '$(majorversion)$(Year:yy)$(PSI)$(dot)$(sprint)$(dot)$(Date:MMdd)'
Run Code Online (Sandbox Code Playgroud)

上面的逻辑在 old_date 中设置了一个默认日期,从latest_date 中减去它并除以 56 以获得一些值。结果的下一个值是我们的 PSI。冲刺的计算方式相同。这样做是为了形成我们的 Dot Net 应用程序的版本号。像这样的“2.212.2.0312”

相同类型的逻辑也适用于 Jenkins 的 Groovy 脚本。但在这里,它显示 PSI = ($(latest_date)-$(old_date))/56+1 并且不评估任何内容。

感谢您对此的回应。

yaml azure devops azure-devops azure-pipelines

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

当后端和前端位于不同的仓库时,如何使用 Cypress.io 进行端到端测试?

我有一个带有 NextJS 前端和 FeathersJS/Node 后端的项目。这两个应用程序/代码库都是单独的存储库。我想开始使用 Cypress 进行 E2E 测试,但我不确定在我的设置中执行此操作的最佳方法是什么。理想情况下,测试将作为 CI 的一部分针对每个后端和前端更改运行。我目前正在为我的 CI 使用 GitHub 操作,我不确定这对我是否有帮助或伤害。

我看到有些人提到将 Cypress 放在自己的存储库中,并使用自己的 docker-compose 来处理前端和后端的旋转以运行测试。但是,我不明白这作为 CI 的一部分如何工作。预合并的新代码如何进入此存储库并作为 CI 的一部分运行?我认为这种方法会有很多问题。

我想到的一种方法是将 Cypress 作为前端 NextJS 应用程序的一部分,并让它针对后端的“暂存”或“测试”实例运行,该实例会随着每个新的后端部署而播种。这里的问题之一是,当后端发生变化时,测试将不会运行,但这不一定是问题,我想。

有什么想法吗?

testing node.js devops next.js cypress

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

Podman 与 Docker 有何不同?

我知道 Docker 和 Kubernetes 解决了同样的问题。大多数用户可以简单地将 Docker 别名为 Podman(别名 docker=podman),不会出现任何问题。

那么它们之间有什么区别呢?

cloud redhat docker devops podman

5
推荐指数
2
解决办法
4579
查看次数

Azure Linux 应用服务:从 DevOps 管道部署后安装包

我目前正在 Azure Devops 中设置 CI/CD 管道,以在 Linux 托管应用程序服务(而不是 VM)上部署 NodeJS 应用程序。

我的构建和部署都很顺利,但我需要确保在部署应用程序后在环境中安装一些软件包。

问题是:无论apt-get我在部署后创建什么脚本,我都必须手动运行它们才能真正生效。不过,在管道日志中,它们似乎已被执行。

这是我的 yaml 代码中负责部署的部分,我错过了什么吗?

- stage: Deploy
  displayName: Deploy stage
  dependsOn: Build
  condition: succeeded()
  jobs:
  - deployment: Deploy
    displayName: Deploy
    environment: $(environmentName)
    pool:
      vmImage: $(vmImageName)
    workspace:
      clean: all
    strategy:
      runOnce:
        deploy:
          steps:
          - task: AzureWebApp@1
            displayName: 'Azure Web App Deploy:'
            inputs:
              azureSubscription: $(azureSubscription)
              appType: webAppLinux
              appName: $(webAppName)
              runtimeStack: 'NODE|16-lts'
              package: $(Pipeline.Workspace)/drop/drop$(Build.BuildNumber).zip
              startUpCommand: 'pm2 start index.js --no-daemon'
        on:
         success:
           steps:
           - script: sudo apt-get update
             displayName: apt …
Run Code Online (Sandbox Code Playgroud)

linux yaml azure devops azure-web-app-service

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

(Terraform、GCP)错误 403:列出消费者容器服务的权限被拒绝 [projects/335478934851]

在GCP上,我尝试使用下面的Terraform代码启用“身份和访问管理(IAM)API”:

provider "google" {
  credentials = file("myCredentials.json")
  project     = "myproject-173831"
  region      = "asia-northeast1"
}

resource "google_project_service" "project" {
  service = "iam.googleapis.com"
}
Run Code Online (Sandbox Code Playgroud)

但我收到了这个错误:

读取或编辑 Project Service 时出错:请求List Project Services myproject-173831返回错误:无法列出项目 myproject-173831 启用的服务:googleapi:错误 403:列出使用者容器服务的权限被拒绝 [projects/335478934851]

然后我就无法启用它

在此输入图像描述

所以现在,我尝试添加一个角色来解决上面的这个错误,但是有太多角色可供选择:

在此输入图像描述

我需要选择什么角色?

google-cloud-platform terraform devops google-cloud-iam terraform-provider-gcp

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

Docker 机密是否比绑定安装提供任何额外的安全性?

据我了解,Dockersecrets和挂载(绑定和卷)都是在 Docker 容器内管理机密的安全方法。我想知道是否secrets有任何安全优势?

我有一组任意大小的秘密。这些秘密保存在文件夹中的单独文件中。它们会定期自动更改。我想让它们全部可供 Docker 容器使用。使用绑定挂载,我可以挂载它们的文件夹,并且它们都可以访问。使用secrets,我必须在 Docker Compose 文件中指定每一项,从而增加耦合性并降低可维护性。我有什么理由应该选择以牺牲secrets可维护性为代价来选择它吗?

docker devops docker-secrets

5
推荐指数
2
解决办法
1948
查看次数

Podman 服务器 API 版本太旧。客户端“4.0.0”服务器“3.4.4”

我正在尝试使用 Podman 在 IntelliJ 中构建 Spring Boot 项目的映像。Jetbrain 的指南建议在构建、执行、部署 > Docker 中“选择 TCP 套接字并在引擎 API URL 中指定 Podman API 服务 URL”(请参阅​​ https://www.jetbrains.com/help/idea/podman.html)。

但是,当提供 Podman 文档中找到的 TCP 套接字时(请参阅https://docs.podman.io/en/latest/markdown/podman-system-service.1.html),IntelliJ 表示无法连接。

最后,当终端中出现以下错误时:

(base) abc ~ % podman ps
Cannot connect to Podman. Please verify your connection to the Linux system using `podman system connection list`, or try `podman machine init` and `podman machine start` to manage a new Linux VM
Error: unable to connect to Podman socket: server API …
Run Code Online (Sandbox Code Playgroud)

spring intellij-idea docker devops podman

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

我在 docker-compose 中有一个带有 Postgresql 的 Java Spring 启动,org.postgresql.util.PSQLException: Connection to localhost:5432

引起的原因:org.postgresql.util.PSQLException:与 localhost:5432 的连接被拒绝。检查主机名和端口是否正确以及邮局主管是否接受 TCP/IP 连接。

我在创建 docker 镜像时遇到问题。

当我检查 postgres 端口时

postgres   4318 iqbal    8u  IPv4 0xbccc4b164eb6b423      0t0  TCP 127.0.0.1:5432 (LISTEN)
com.docke 11144 iqbal   45u  IPv6 0xbccc4b1b1bb15e0b      0t0  TCP *:5432 (LISTEN)
Run Code Online (Sandbox Code Playgroud)

应用程序.properties 文件

spring.mvc.converters.preferred-json-mapper=gson
spring.datasource.url= jdbc:postgresql://localhost:5432/flightbed
spring.datasource.username= iqbal
spring.datasource.password= postgres

spring.datasource.hikari.connectionTimeout=20000
spring.datasource.hikari.maximumPoolSize=5

spring.jpa.properties.hibernate.dialect= org.hibernate.dialect.PostgreSQLDialect
spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true

spring.jpa.hibernate.ddl-auto= update
spring.jpa.show-sql=true
Run Code Online (Sandbox Code Playgroud)

Docker-compose 文件在这里:

    version: '3.1'
services:
  app:
    image: 'docker-spring-boot-postgres:latest'
    build:
        context: .
      container_name: app
      depends_on:
        - localhost
      environment:
        - SPRING_DATASOURCE_URL=jdbc:postgresql://postgresqldb:5432/flightbed
        - SPRING_DATASOURCE_USERNAME=iqbal
        - SPRING_DATASOURCE_PASSWORD=postgres
        - SPRING_JPA_HIBERNATE_DDL_AUTO=update

  localhost:
        image: 'postgres:13.1-alpine'
        container_name: postgresqldb
        environment:
          - …
Run Code Online (Sandbox Code Playgroud)

postgresql docker spring-boot docker-compose devops

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