我目前正在开发一个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) 我们开始使用 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'
我有一份詹金斯的工作。这非常简单:从 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 引发错误并失败会发生什么?
我只想在特定工作流程完成时触发工作流程...有人知道该怎么做吗?
一些背景:
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
我正在尝试创建一个 Helm 图表 (x),其中图表 (x) 内按特定顺序进行 5 个部署:
\n\nHelm/Tiller 版本:“v2.12.3”\nKubectl 版本:主要:“1”,次要:“17”\nMinikube 版本:v1.6.2
\n\n我目前拥有的:\n资源:\n==> v1/Deployment
\n\n姓名
\n\n我可以轻松部署图表 (x),但一旦运行 helm ls,我的 (x) 图表就会按随机顺序排列,如上所示。我只有一个图表名称 (x),在 (x) 内我有:
\n\nChart.yaml 图表 模板 value.yaml
\n\n模板和图表是目录,其余的是文件。\n 有没有特定的方法或技巧可以让我的 x(图表)按我想要的顺序排列?我\xe2\x80\x99已经做了一些研究,我不太确定 helm Spray 是否正确调用,因为我正在尝试使用不同的部署来部署 1 个图表,而不是伞图和许多其他子图表。\n让我知道您是否需要更多信息。
\n我在某个根目录下有多个文件,让\xe2\x80\x99s将其称为module/data/。\n我需要将此目录上传到相应的S3存储桶。所有这一切都按预期工作:
\n\nresource "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}\nRun Code Online (Sandbox Code Playgroud)\n\n剩下的唯一一件事是我需要递归地循环所有文件,并!S3!用 terraform\xe2\x80\x99s 模块的变量值替换标记(例如 )。\n与此类似,但跨目录/子目录中的所有文件:
replace(file("${path.module}/launchconfigs/file"), \xe2\x80\x9c#S3\xe2\x80\x9d, aws_s3_bucket.kops.bucket)\nRun Code Online (Sandbox Code Playgroud)\n\n所以一句话的问题是:如何循环文件并用 terraform 中的变量替换其中的一部分?
\n我正在使用 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)
我的发布管道中的变量如下所示:

如果有人可以提供帮助,我将非常感激。
我正在创建云形成代码来构建 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)
但它不被云形成和错误所支持!
我正在按照一些 k8s 文档设置入口服务,但我无法理解以下注释:
kubernetes.ip/ingress.class:
nginx.ingress.kubernetes.io/rewrite-target:
你知道这些注释的作用吗?
提前致谢。
我有这样的结构:
在我的 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 登录’:被拒绝:请求的资源访问被拒绝”
任何人都知道如何在不通过注册表解决方案的情况下解决这个问题(以将所有内容保留在本地)?
谢谢。
devops ×10
build ×2
docker ×2
dockerfile ×2
kubernetes ×2
.net ×1
amazon-ecs ×1
amazon-s3 ×1
automation ×1
azure ×1
azure-devops ×1
github ×1
jenkins ×1
json ×1
minikube ×1
pipeline ×1
shell ×1
terraform ×1