标签: devops

`chmod` 不适用于 Dockerfile (macbook)

我目前正在开发一个Dockerfile,它要求我拥有对两个特定文件夹进行读取、写入和执行的权限。当需要运行命令时chmod,它就会失败。我可以在 docker 容器内手动更改权限,但它似乎没有从命令中获取它。这是目前的样子:

FROM <image-source>
SHELL ["/bin/bash", "-c"]
USER root
WORKDIR /bla/bla
COPY . .
CMD chmod 777 -R /src/main/*
CMD chmod 777 -R /app/main/*
Run Code Online (Sandbox Code Playgroud)

shell docker dockerfile devops

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

是否可以在 Azure DevOps 上的构建管道期间下载文件?

我们开始使用 Azure DevOps 来构建和部署我的应用程序。目前,我们不将应用程序图像上传到我们的存储库。我想知道是否可以将所有图像下载到将在构建管道期间生成的工件中。

我的 yml 管道:触发器:- 开发

池:vmImage:'windows-latest'

变量:解决方案:'**/*.sln' buildPlatform:'任何 CPU' buildConfiguration:'发布'

步骤: - 任务:NuGetToolInstaller@0

  • 任务:NuGetCommand@2 输入:restoreSolution:'$(solution)'

  • 任务:Npm@1 输入:命令:'install'workingDir:'applicationFolder/app'

  • 任务:VSBuild @ 1输入:解决方案:'$(解决方案)'msbuildArgs:'/ p:DeployOnBuild = true / p:WebPublishMethod = Package / p:PackageAsSingleFile = true / p:SkipInvalidConfigurations = true / p:PackageLocation =“$( build.artifactStagingDirectory)"' 平台:'$(buildPlatform)' 配置:'$(buildConfiguration)'

  • 任务:PublishBuildArtifacts@1 输入:PathtoPublish:'$(Build.ArtifactStagingDirectory)' ArtifactName:'drop'publishLocation:'Container'

pipeline build devops azure-devops

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

在詹金斯中设置构建状态

我有一份詹金斯的工作。这非常简单:从 git 中拉取,然后运行构建。

构建只是一步:

执行窗口命令批处理

在我的用例中,我需要运行一些 python 脚本。有些会失败,有些则不会。

python a.py
python b.py
Run Code Online (Sandbox Code Playgroud)

什么决定了构建的最终状态?看来我可以通过以下方式编辑:

echo @STABLE > build.proprieties
Run Code Online (Sandbox Code Playgroud)

但如果用户没有指定,STABLE/UNSTABLE 状态是如何分配的呢?如果 b.py 引发错误并失败会发生什么?

continuous-integration build jenkins devops

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

检查套件完成后如何触发 Github 工作流程?

我只想在特定工作流程完成时触发工作流程...有人知道该怎么做吗?

一些背景:

  • 我有一个工作流程Tests,另一个称为Build-feature.
  • Tests我在每个 PR 到分支上运行我的工作流程feature
  • 如果某些内容被推送/合并到分支feature,那么我想运行工作流程Tests,并且只有当成功时我才想运行Build-feature工作流程。

还有一个事件check_suite应该触发工作流程:https://help.github.com/en/actions/automating-your-workflow-with-github-actions/events-that-trigger-workflows#check-suite-事件检查套件

我尝试了这个例子:

on:
  check_suite:
    types: [rerequested, completed]
Run Code Online (Sandbox Code Playgroud)

但我的工作流程从未触发,有什么想法吗?或者关于如何实现上述目标的任何其他想法?

continuous-integration github continuous-deployment devops github-actions

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

Helm 按照“部署”的特定顺序安装

我正在尝试创建一个 Helm 图表 (x),其中图表 (x) 内按特定顺序进行 5 个部署:

\n\n
    \n
  1. 部署1(zk)
  2. \n
  3. 部署2(安全)
  4. \n
  5. 部署3(本地主控)
  6. \n
  7. 部署4(nginx)
  8. \n
  9. 部署5(semoss)
  10. \n
\n\n

Helm/Tiller 版本:“v2.12.3”\nKubectl 版本:主要:“1”,次要:“17”\nMinikube 版本:v1.6.2

\n\n

我目前拥有的:\n资源:\n==> v1/Deployment

\n\n

姓名

\n\n
    \n
  1. 本地管理员
  2. \n
  3. nginx
  4. \n
  5. 安全
  6. \n
  7. 塞莫斯
  8. \n
  9. Zk
  10. \n
\n\n

我可以轻松部署图表 (x),但一旦运行 helm ls,我的 (x) 图表就会按随机顺序排列,如上所示。我只有一个图表名称 (x),在 (x) 内我有:

\n\n

Chart.yaml 图表 模板 value.yaml

\n\n

模板图表是目录,其余的是文件。\n 有没有特定的方法或技巧可以让我的 x(图表)按我想要的顺序排列?我\xe2\x80\x99已经做了一些研究,我不太确定 helm Spray 是否正确调用,因为我正在尝试使用不同的部署来部署 1 个图表,而不是伞图和许多其他子图表。\n让我知道您是否需要更多信息。

\n

kubernetes devops minikube kubernetes-helm

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

批量替换Terraform中的文件内容

我在某个根目录下有多个文件,让\xe2\x80\x99s将其称为module/data/。\n我需要将此目录上传到相应的S3存储桶。所有这一切都按预期工作:

\n\n
resource "aws_s3_bucket_object" "k8s-state" {\n  for_each = fileset("${path.module}/data", "**/*")\n  bucket = aws_s3_bucket.kops.bucket\n  key    = each.value\n  source = "${path.module}/data/${each.value}"\n  etag   = filemd5("${path.module}/data/${each.value}")\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

剩下的唯一一件事是我需要递归地循环所有文件,并!S3!用 terraform\xe2\x80\x99s 模块的变量值替换标记(例如 )。\n与此类似,但跨目录/子目录中的所有文件:

\n\n
replace(file("${path.module}/launchconfigs/file"), \xe2\x80\x9c#S3\xe2\x80\x9d, aws_s3_bucket.kops.bucket)\n
Run Code Online (Sandbox Code Playgroud)\n\n

所以一句话的问题是:如何循环文件并用 terraform 中的变量替换其中的一部分?

\n

automation amazon-s3 amazon-web-services terraform devops

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

appsettings.json 文件中的 JSON 变量替换在 Azure DevOps 版本中不起作用

我正在使用 Visual Studio 2019 使用 ASP.NET Core 3.1 在 C# 中创建 Restful Web API。我正在尝试将发布管道中 appsettings.json 文件中的值 (AppSettings.ReleasePipeline) 替换为每个阶段的不同值,但它没有在任何阶段设置,而只是使用 appsettings.json 文件中的值那已经在那里了。

这是我的 appsettings.json 文件:

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*",
  "ConnectionStrings": {
    "CodeCampDatabaseConnectionString": "Data Source=.;Initial Catalog=PSCodeCamp;User Id=sa;Password=[REDACTED];Connect Timeout=30;"
  },
  "AppSettings": {
    "ReleasePipeline" : "Environment from AppSettings"
  }
}
Run Code Online (Sandbox Code Playgroud)

我的发布管道中的变量如下所示:

我的发布管道的图片

如果有人可以提供帮助,我将非常感激。

.net json azure devops

3
推荐指数
1
解决办法
2万
查看次数

如何通过 ECS ContainerDefinitions 中的 CloudFormation 从 AWS 参数存储注入值

我正在创建云形成代码来构建 ECS 集群。我需要从 AWS 参数存储中获取一些值。我没有找到任何相同的示例代码示例。看起来cloudFormation中的“ValueFrom”不支持!

有人能证实吗?

下面我尝试使用:

  ContainerDefinitions:
    - Name: !Ref ServiceName
      Image: !Ref Image
      PortMappings:
        - ContainerPort: !Ref ContainerPort
      Environment:
      - Name: DB_HOST
        Value: arn:aws:ssm:us-east-2:111111111111:parameter/dev/rds/DB_HOST
      - Name: DB_PASSWORD
        Value: arn:aws:ssm:us-east-2:111111111111:parameter/dev/rds/DB_PASSWORD
      - Name: DB_PORT
        Value: 5432
Run Code Online (Sandbox Code Playgroud)

在上述情况下,CloudFormation 代码执行时没有错误,但将 DB_HOST 和 DB_PASSWORD 视为简单/直接文本,不采用表单参数存储,请检查突出显示的屏幕截图:

在此输入图像描述

因此,它仅适用于 DB_PORT,不适用于 DB_HOST 和 DB_PASSWORD,直到我手动将“value”(在屏幕截图中突出显示)更改为“valueFrom”,如下图所示:

在此输入图像描述

基本上我想通过 CloudFormation 使用“valueFrom”选项!

我也尝试过:

     Environment:
      - Name: DB_HOST
        ValueFrom: arn:aws:ssm:us-east-2:111111111111:parameter/dev/rds/DB_HOST
Run Code Online (Sandbox Code Playgroud)

但它不被云形成和错误所支持!

amazon-web-services amazon-ecs aws-cloudformation devops

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

kubernetes ingress 服务注解

我正在按照一些 k8s 文档设置入口服务,但我无法理解以下注释:

kubernetes.ip/ingress.class:

nginx.ingress.kubernetes.io/rewrite-target:

你知道这些注释的作用吗?

提前致谢。

kubernetes devops nginx-ingress

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

如何使用 docker-compose 来构建 Dockerfile?

我有这样的结构:

在此输入图像描述

在我的 Makefile 中,我构建了 dockerfile:

sudo docker build --build-arg PHP_VERSION=7.4 -t kaiza/image-php74 - < dockerfile/Dockerfile.php
Run Code Online (Sandbox Code Playgroud)

kaiza /image-php74在本地创建得很好,如果我这样做docker images,我会得到:

在此输入图像描述

然后,在我的 docker-compose.php74.yml 中:

version: '2.4'

services:
  php7.4:
    image: "kaiza/image-php74"
    container_name: "kz-php74"
    hostname: "kz-php74"
    user: 1000:1000
...
Run Code Online (Sandbox Code Playgroud)

但是,当我运行它时

docker-compose -f docker-compose/php/docker-compose.php74.yml up --build -d
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

“kaiza/image-php74 的拉取访问被拒绝,存储库不存在或可能需要‘docker 登录’:被拒绝:请求的资源访问被拒绝”

任何人都知道如何在不通过注册表解决方案的情况下解决这个问题(以将所有内容保留在本地)?

谢谢。

docker dockerfile docker-compose devops

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