根据官方gitlab文档,docker build在ci管道内启用的一种方法是使用dind服务(就gitlab-ci 服务而言).
但是,由于在docker执行程序上运行ci作业总是如此,因此docker:latest也需要图像.
有人能解释一下:
docker:dind和docker:latest图像有什么区别?docker buildwhithin一个CI的工作吗?不是docker:latest图像(作业将在其中执行!)包含docker守护程序(我认为docker-compose也是),它们是我们需要的命令所必需的工具(例如docker build,docker push等等)?除非我错了,否则问题或多或少变成:
为什么docker客户端和docker守护程序不能驻留在同一个docker(启用)容器中
google_logging_metric我正在Terraform 中声明资源(使用 version 0.11.14)
我有以下声明
resource "google_logging_metric" "my_metric" {
description = "Check for logs of some cron job\t"
name = "mycj-logs"
filter = "resource.type=\"k8s_container\" AND resource.labels.cluster_name=\"${local.k8s_name}\" AND resource.labels.namespace_name=\"workable\" AND resource.labels.container_name=\"mycontainer-cronjob\" \nresource.labels.pod_name:\"my-pod\""
project = "${data.terraform_remote_state.gke_k8s_env.project_id}"
metric_descriptor {
metric_kind = "DELTA"
value_type = "INT64"
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法使filter字段多行?
local变量的存在"${local.k8s_name}使得它有点具有挑战性。
我正在设置一个kind集群
Creating cluster "kind" ...\n \xe2\x9c\x93 Ensuring node image (kindest/node:v1.22.1) \n \xe2\x9c\x93 Preparing nodes \n \xe2\x9c\x93 Writing configuration \n \xe2\x9c\x93 Starting control-plane \xef\xb8\x8f \n \xe2\x9c\x93 Installing CNI \n \xe2\x9c\x93 Installing StorageClass \n \xe2\x9c\x93 Joining worker nodes \n \xe2\x9c\x93 Waiting \xe2\x89\xa4 5m0s for control-plane = Ready \xe2\x8f\xb3 \n \xe2\x80\xa2 Ready after 0s \nRun Code Online (Sandbox Code Playgroud)\n然后尝试按照版本 1.6 的说明安装 ECK 运算符
\nkubectl apply -f https://download.elastic.co/downloads/eck/1.6.0/all-in-one.yaml\nRun Code Online (Sandbox Code Playgroud)\n但是该过程失败了,好像kind不支持 CRD...是这样吗?
namespace/elastic-system created\nserviceaccount/elastic-operator created\nsecret/elastic-webhook-server-cert created\nconfigmap/elastic-operator created\nclusterrole.rbac.authorization.k8s.io/elastic-operator created\nclusterrole.rbac.authorization.k8s.io/elastic-operator-view …Run Code Online (Sandbox Code Playgroud) 在Ubuntu中设置PySide进行开发的推荐方法是什么?
sudo apt-get install python3-pyside?sudo pip install pyside?sudo easy_install pyside?我想使用 python3/flask 构建一个非常简单的 REST api。
举例来说,我想将我的SECRET_KEYrequired by设置flask为 env var。
推荐的方法是什么?
我知道python-dotenv允许(或者我应该说需要?).flaskenv带有 env vars的文件以以下形式设置为键值对的包
SECRET_KEY="my_secret_key"
DB_NAME="mydatabase"
Run Code Online (Sandbox Code Playgroud)
等等。
然后(我假设)我可以创建一个settings.py文件,例如
import os
SECRET_KEY = os.getenv('SECRET_KEY`)
Run Code Online (Sandbox Code Playgroud)
然后import settings对我的烧瓶文件等执行。
我的主要问题是如何在容器化环境中进行调整,其中不会有这样的.flaskenv文件,但相应的变量将作为容器本身中的运行时环境变量可用(例如通过其编排器)
上面的形式settings.py是否能够在没有 的情况下检索环境变量.flaskenv?
我正在使用官方docker-compose 文件来airflow启动它。
我的一些容器看起来不健康:
\n34d8698d67e7 apache/airflow:2.0.2 "/usr/bin/dumb-init \xe2\x80\xa6" 31 minutes ago Up 28 minutes (unhealthy) 0.0.0.0:5555->5555/tcp, :::5555->5555/tcp, 8080/tcp airflow_flower_1\na291cf238b9f apache/airflow:2.0.2 "/usr/bin/dumb-init \xe2\x80\xa6" 31 minutes ago Up 29 minutes 8080/tcp airflow_airflow-init_1\nfdb20e9152f3 apache/airflow:2.0.2 "/usr/bin/dumb-init \xe2\x80\xa6" 31 minutes ago Up 29 minutes (unhealthy) 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp airflow_airflow-webserver_1\nabf5a16aa846 apache/airflow:2.0.2 "/usr/bin/dumb-init \xe2\x80\xa6" 31 minutes ago Up 29 minutes 8080/tcp airflow_airflow-worker_1\nf6dc352f407b apache/airflow:2.0.2 "/usr/bin/dumb-init \xe2\x80\xa6" 31 minutes ago Up 28 minutes 8080/tcp airflow_airflow-scheduler_1\n12dfc71e518f redis:latest "docker-entrypoint.s\xe2\x80\xa6" 31 minutes ago Up 29 minutes (healthy) 0.0.0.0:6379->6379/tcp, …Run Code Online (Sandbox Code Playgroud) 官方的kubernetes指南通过执行以下命令行来指导更新部署set:
kubectl set image deployment/nginx-deployment nginx=nginx:1.9.1
Run Code Online (Sandbox Code Playgroud)
或通过内联编辑(我猜将会启动默认编辑器)
kubectl edit deployment/nginx-deployment
Run Code Online (Sandbox Code Playgroud)
但是,由于需要使my-deployment.yml文件脱机(运行和部署来自何处),这两个过程使一致性变得更加困难。(并且这剥夺了使清单保持版本控制的优势)。
有没有办法
我正在尝试测试使用自定义容器映像运行/调用的新添加功能lambda,因此我从AWS python:3.8基础映像构建一个非常简单的映像,如下所示:
FROM public.ecr.aws/lambda/python:3.8\n\n\nCOPY myfunction.py ./\n\nCMD ["myfunction.py"]\n\nRun Code Online (Sandbox Code Playgroud)\n这是myfunction.py
FROM public.ecr.aws/lambda/python:3.8\n\n\nCOPY myfunction.py ./\n\nCMD ["myfunction.py"]\n\nRun Code Online (Sandbox Code Playgroud)\n我的问题如下:构建完成后:
\ndocker build --tag custom .\nRun Code Online (Sandbox Code Playgroud)\n考虑到我没有公开任何 Web 端点并假设我正在成功地启动自定义容器,我现在如何调用我的 lambda(尽管就handler=我是否正确配置了处理程序而言,这部分有点令人不安)
\xe2\x96\xb6 docker run -p 9000:8080 -it custom\nINFO[0000] exec \'/var/runtime/bootstrap\' (cwd=/var/task, handler=) \nRun Code Online (Sandbox Code Playgroud)\n简单的卷曲当然会失败
\n\xe2\x96\xb6 curl -XGET http://localhost:9000 \n404 page not found\nRun Code Online (Sandbox Code Playgroud)\n 我正在尝试创建一个sg terraform plan.
我希望特定SG的所有实例都允许它们之间的所有通信,因此我将SG本身添加到入口规则中,如下所示:
resource "aws_security_group" "rancher-server-sg" {
vpc_id = "${aws_vpc.rancher-vpc.id}"
name = "rancher-server-sg"
description = "security group for rancher server"
ingress {
from_port = 0
to_port = 0
protocol = -1
security_groups = ["${aws_security_group.rancher-server-sg.id}"]
}
Run Code Online (Sandbox Code Playgroud)
但是在跑步时terraform plan,我得到:
terraform plan
但是,在terraform plan控制台中,我可以在入站规则中添加SG名称,我看到我可以添加组本身(即自引用).
这是为什么?
编辑:也试过这个没有成功:
Run Code Online (Sandbox Code Playgroud) amazon-web-services terraform aws-security-group terraform-provider-aws
我是golang-migrate的新用户。
我已经运行了一些成功执行的迁移。
我处于开发模式,所以我想在psqlshell 中重新运行迁移,并在连接到我的数据库后,我执行了drop database schema_migrations
现在的问题是,当我运行执行迁移的代码时(如下所示)
func RunMigrations() {
m, err := migrate.New(
"file://db/migrations",
"postgres://postgres:postgres@localhost:5432/mydatabase?sslmode=disable")
if err != nil {
log.Fatal(err)
}
if err := m.Up(); err != nil {
if err.Error() == "no change" {
log.Println("no change made by migration scripts")
} else {
log.Fatal(err)
}
}
}
Run Code Online (Sandbox Code Playgroud)
我收到这个错误
脏数据库版本 2. 修复和强制版本。
这个错误是关于什么的,我该如何解决?