我在 M1 MacOS 上有一个 Rancher Deskop(dockerd),当我尝试在 dockerfile 下构建时,我收到如下错误。这是我尝试构建图像的命令docker build -t te-grafana-dashboards-toolchain --no-cache .
我尝试更换平台,但其中一些对我有用。我对 M1 的这个平台问题有点迷失,但任何帮助将不胜感激,我做错了什么?造成这种情况的根本原因可能是什么?
Removing intermediate container 70af516d5d6b
---> a69229847153
Step 5/6 : RUN GO111MODULE="on" go get github.com/jsonnet-bundler/jsonnet-bundler/cmd/jb; ln -s $(go env GOPATH)/bin/jb /usr/bin/jb
---> Running in 13545862fffe
qemu-x86_64: Could not open '/lib64/ld-linux-x86-64.so.2': No such file or directory
qemu-x86_64: Could not open '/lib64/ld-linux-x86-64.so.2': No such file or directory
Removing intermediate container 13545862fffe
Run Code Online (Sandbox Code Playgroud)
Dockerfile
FROM --platform=linux/amd64 ubuntu:focal
RUN apt update; apt install -y curl jq build-essential python3.8 python3-pip …Run Code Online (Sandbox Code Playgroud) 我有一个 dockerfile 如下,但在RUN npm ci步骤中,有一个npm WARN old lockfile The package-lock.json file was created with an old version of npm我无法弄清楚的警告..
我尝试使用 npm install 而不是 npm ci,添加了--package-lock标志但仍然收到此警告。这是我必须忽略的一种警告,或者我应该怎么解决这个问题
Step 12/26 : RUN npm ci --production --package-lock && npm ci --production --package-lock --prefix ./ui-runner
---> Running in 3473c209b98c
npm WARN old lockfile
npm WARN old lockfile The package-lock.json file was created with an old version of npm,
npm WARN old lockfile so supplemental metadata must be fetched from …Run Code Online (Sandbox Code Playgroud) 我使用helm createHelm v3 命令创建了一个 helm 图表,它为我创建了标准模板。由于我是使用 Helm 的新手,所以我对使用选择器和标签感到有些困惑。
那么应该如何使用deployment.yaml和services.yaml之间的标签呢?
使用include-road-dashboard.labels命令已经执行与下面相同的操作,或者我需要单独指定标签,如下例命令所示。我的问题对于命令来说也是一样的{{ include "road-dashboard.selectorLabels" . }}。
更新模板
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "road-dashboard.fullname" . }}
labels:
app.kubernetes.io/name: {{ include "road-dashboard.name" . }}
helm.sh/chart: {{ include "road-dashboard.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
Run Code Online (Sandbox Code Playgroud)
Helm 标准模板
部署.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "road-dashboard.fullname" . }}
labels:
{{- include "road-dashboard.labels" . | nindent 4 }}
spec:
replicas: {{ .Values.replicaCount …Run Code Online (Sandbox Code Playgroud) 我有两个关于 Jenkins 管道中帖子部分的使用问题
1.我们可以在 Jenkins 声明式管道中的每个阶段使用多个 post 部分吗?
2.我们可以在post部分运行sh命令吗?
pipeline{
stages{
stage("....") {
steps {
script {
....
}
}
post {
failure{
sh "....."
}
}
stage("Second stage") {
when {
expression { /*condition */ }
}
steps {
script{
....
}
post {
always {
script {
sh "..."
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud) 我使用以下命令通过 Jenkins 将 Docker 镜像推送到我们的私有注册表:
def dockerImage = docker.build("repo/myapp:${env.BUILD_NUMBER}")
Run Code Online (Sandbox Code Playgroud)
(BUILD_NUMBER每次构建后都会增加。)
因为我是 Helm 的新手,所以我无法决定如何为values.yaml.
我想将我的应用程序部署到多个环境,例如:
devtestprod假设我能够通过 Helm 将应用程序部署到dev,最新的BUILD_NUMBER是:
devtestprod那么标签值应该是多少呢?
image:
repository: registryt/myrepo/image
tag:
Run Code Online (Sandbox Code Playgroud) 我想集成我们的 Jenkins 和 Kubernetes 集群,它们在不同的服务器上工作。我每个stage和2 个集群production。我已经在舞台集群上创建了 2 个命名空间来划分development和stage。我将我的 values.yaml 划分为如下所示。
所以根据 GIT_BRANCH 值;我想设置命名空间变量并通过helm install命令进行部署。在这种情况下,
我的问题是,在这种情况下,在 Jenkinsfile 中连接 2 个集群的最佳方法是什么,因为开发和测试命名空间我需要一个集群,生产我需要部署另一个集群。
stage('deploy') {
steps {
script {
if (env.GIT_BRANCH == "origin/master") {
def namepsace="dev"
sh "helm upgrade --install -f values.dev.yaml --namespace ${namespace}"
} else if (env.GIT_BRANCH =="origin/test"){
def namepsace="stage"
sh "helm upgrade --install -f values.stage.yaml --namespace ${namespace}"
} else {
def namepsace="prod"
sh "helm upgrade --install -f values.prod.yaml --namespace …Run Code Online (Sandbox Code Playgroud) 我们有 Helm 3.0.3 和 1.18 k8s,一年以来我们没有遇到过像下面这样的任何问题。我们通过 helm 将多个微服务部署到 k8s,到目前为止一切正常。但即使我们没有对服务字段进行任何更改,我们也会收到如下错误。
这是我如何部署到 k8s 的命令。当我在 k8s 中卸载该服务并开始重新构建时,它可以正常工作,但是当我需要推送新更改时?再次面对这个错误。
+ helm upgrade --install --debug --force xx-ui-dev --values values.dev.yaml --namespace dev --set image.tag=608 .
Run Code Online (Sandbox Code Playgroud)
错误
history.go:52: [debug] getting history for release xx-ui-dev
upgrade.go:120: [debug] preparing upgrade for xx-ui-dev
upgrade.go:128: [debug] performing update for xx-ui-dev
upgrade.go:292: [debug] creating upgraded release for xx-ui-dev
client.go:173: [debug] checking 7 resources for changes
client.go:432: [debug] Replaced "xx-ui-dev" with kind NetworkPolicy for kind NetworkPolicy
client.go:432: [debug] Replaced "xx-ui-dev" with kind ServiceAccount for …Run Code Online (Sandbox Code Playgroud) 我想根据环境变量有条件地 proxy_pass 到相关服务。我的意思是,prox_pass 地址应该根据 NODE_ENV 变量进行更改。
这样做的最佳方法是什么?我可以对 proxy_pass 使用如下 if 语句吗?如果是的话我应该怎么做?除此之外,我尝试创建一个如下所示的 bash 将环境变量传递给 nginx,但无法以$NGINX_BACKEND_ADDRESS某种方式设置并传递给 nginx conf。任何帮助将不胜感激
if ($NODE_ENV == "development) {
proxy_pass http://myservice-dev;
}
Run Code Online (Sandbox Code Playgroud)
nginx.conf
server {
listen 3000;
location / {
root /usr/src/app;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
location /csrf/token {
proxy_pass ${NGINX_BACKEND_ADDRESS}/csrf/token;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location /export/apis {
proxy_pass ${NGINX_BACKEND_ADDRESS}/export/apis;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
Run Code Online (Sandbox Code Playgroud)
入口点.sh
#!/usr/bin/env sh
set -eu
export NODE_ENV=development
if …Run Code Online (Sandbox Code Playgroud) 我们正在开发基于微服务的应用程序。它们将使用 Helm Package Manager 部署到 kubernetes,并且所有这些都存储自己的存储库和 helm 图表。以下是我们微服务的名称。
我的困惑是,在部署之前,我如何指定后端的 pod 需要与 UI、API 和 Auth 的 Pods 进行通信。应用程序可以知道与 UI/AUTH/其他内容建立连接,但是在微服务之间管理此操作的最佳方法是什么豆荚。
抱歉,这可能是一个简单的问题,但是使用工具和 docker agent 之间有什么区别。我认为使用 docker agent 比使用工具更灵活。我什么时候应该使用 docker 代理或工具?
pipeline {
agent any
tools {
maven 'Maven 3.3.9'
jdk 'jdk8'
}
stages {
stage ('Initialize') {
steps {
sh '''
echo "PATH = ${PATH}"
echo "M2_HOME = ${M2_HOME}"
'''
}
}
stage ('Build') {
steps {
sh 'mvn -Dmaven.test.failure.ignore=true install'
}
Run Code Online (Sandbox Code Playgroud)
pipeline {
agent none
stages {
stage('Back-end') {
agent {
docker { image 'maven:3-alpine' }
}
steps {
sh 'mvn --version'
}
}
Run Code Online (Sandbox Code Playgroud) jenkins ×4
kubernetes ×4
docker ×3
apple-m1 ×1
dockerfile ×1
go ×1
nginx ×1
node.js ×1
npm ×1
rancher ×1