小编lvt*_*llo的帖子

用sed插入单引号

我想在一行上添加一些文本:

sudo sed -i '5imytext 16/16' /file
Run Code Online (Sandbox Code Playgroud)

现在,我mytext 16/16在文件的第5行添加了内容,但实际上我想添加文本'mytext' 16/16mytext在单引号之间)。

我试过了

sudo sed -i '5i'mytext' 16/16' /file
Run Code Online (Sandbox Code Playgroud)

但这没用。有人能帮我吗?

bash shell sed

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

无法在撰写中使用服务名称从(fluentd)日志驱动程序登录

我在 docker 中有以下设置:

  • 应用程序 (httpd)
  • 流利的
  • 弹性搜索
  • 基巴纳

应用程序的 logdriver 的配置描述了 fluentd 容器。日志将保存在 ES 中并显示在 Kibana 中。

当 logdriver 配置为这样时,它可以工作:

web:
    image: httpd
    container_name: httpd
    ports:
      - "80:80"
    links:
      - fluentd
    logging:
      driver: "fluentd"
      options:
        fluentd-address: localhost:24224
        tag: httpd.access
Run Code Online (Sandbox Code Playgroud)

fluentd 将其暴露的端口 24224 映射到主机的端口 24224 上。

 fluentd:
    build: ./fluentd
    image: fluentd
    container_name: fluentd
    links:
      - "elasticsearch"
    ports:
      - "24224:24224"
Run Code Online (Sandbox Code Playgroud)

但我不想在主机网络上暴露我的流利。我想让它在 docker 网络中保持“私有”(我只想在主机网络上映射应用程序和 kibana),如下所示:

 fluentd:
   build: ./fluentd
   image: fluentd
   container_name: fluentd
   links:
     - "elasticsearch"
Run Code Online (Sandbox Code Playgroud)

端口 24224 仍然公开(在 dockerfile 中),但它没有映射到主机网络上。现在我想更改我的应用程序的日志驱动程序的配置: logging: driver: "fluentd" …

fluentd docker docker-networking efk

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

在 Jenkins 的声明式管道的不同阶段重用对象/属性

我们创建一个新的 maven 构建:

def rtMaven = Artifactory.newMavenBuild()
Run Code Online (Sandbox Code Playgroud)

现在我们想在与当前阶段不同的阶段重用这个 rtMaven;就像下面的代码:

pipeline {
agent any

...
stages {

    stage('stage1') {
        steps {
            script {
                def rtMaven = Artifactory.newMavenBuild()
            }
    }

    stage('stage2') {
         steps {
            script {
                //REUSE rtMaven (now it's unknown)
            }
         }

     }
}
Run Code Online (Sandbox Code Playgroud)

是否可以重用rtMaven而无需在第二阶段再次重新定义它?

现在我们有一个错误,如:

groovy.lang.MissingPropertyException: No such property: rtMaven for class: groovy.lang.Binding
Run Code Online (Sandbox Code Playgroud)

groovy artifactory maven jenkins jenkins-pipeline

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

CLI 中的“oadm”是什么?

我正忙于 OpenShift V3,对于某些事情,我需要执行以下命令:

oadm registry --config=admin.kubeconfig \
    --credentials=openshift-registry.kubeconfig 

oadm router <router_name> --replicas=<number> \
    --credentials='/etc/openshift/master/openshift-router.kubeconfig' \
    --service-account=router
Run Code Online (Sandbox Code Playgroud)

问题是:我不知道'oadm'在这种情况下的含义以及为什么必须使用它?在 OpenShift 本身中,我必须使用'oc'它,所以它可能不是特定于 OpenShift 的命令。

openshift-origin

4
推荐指数
1
解决办法
2939
查看次数

如何在 Docker Compose 中添加 $(...)

我有一个 docker-compose.yml,其中包含在 CentOS7 上启动 jenkins-server 的内容:

jenkins:
  image: jenkins
  volumes:
    - /var/run/docker.sock:/var/run/docker.sock
    - $(which docker):/usr/bin/docker:ro
    - /usr/lib64/libsystemd-journal.so.0:/usr/lib/x86_64-linux-gnu/libsystemd-journal.so.0
    - /usr/lib64/libsystemd-id128.so.0:/usr/lib/x86_64-linux-gnu/libsystemd-id128.so.0
    - /usr/lib64/libdevmapper.so.1.02:/usr/lib/x86_64-linux-gnu/libdevmapper.so.1.02
    - /usr/lib64/libgcrypt.so.11:/usr/lib/x86_64-linux-gnu/libgcrypt.so.11
    - /usr/lib64/libdw.so.1:/usr/lib/x86_64-linux-gnu/libdw.so.1
  ports:
    - "8080:8080"
Run Code Online (Sandbox Code Playgroud)

但是我无法运行撰写,因为我在$(which docker):/usr/bin/docker:ro. 我该如何解决这个问题?

错误: ERROR: Invalid interpolation format for "volumes" option in service "jenkins": "$(which docker):/usr/bin/docker:ro"

是否仍然无法包含环境变量?我正在寻找最正确的解决方案。谢谢

jenkins centos7 docker-compose docker-volume

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

Dockerize你的Angular NodeJS应用程序

我们有一个前端应用程序.它是用Angular(html + css + javascript)编写的,需要由webserver(nginx)托管.Angular正在与将与后端通信的NodeJs服务器进行通信.

现在我们必须在Docker中运行它.

  • 我们想要使用2个Docker容器:一个使用nodejs,另一个使用nginx,让它们一起工作

那么可以在一个存储库中编写2个dockerfiles吗?主要的想法是为nodejs提供1个dockerfile,它也运行bower install,npm install,...它将如下所示:

# Create app directory
RUN mkdir -p /usr/src/www
WORKDIR /usr/src/www

RUN npm install -g bower
RUN npm install -g gulp

# Install app dependencies
COPY . /usr/src/www/
RUN bower install
RUN npm install
RUN gulp build

EXPOSE port
CMD [ "node", "server.js" ]
Run Code Online (Sandbox Code Playgroud)

还有一个dockerfile,我们在其中运行一个nginx-webserver,但也包含一个nginx.conf,所以它可以指向我们node.js-container中的right/dist文件夹.nginx的dockerfile将如下所示:

# Set nginx base image
FROM nginx

# Copy custom configuration file from the current directory
COPY nginx.conf /etc/nginx/nginx.conf
Run Code Online (Sandbox Code Playgroud)

nginx.conf的一个例子

location ~* /dist {
            proxy_pass http://nodejs:port; …
Run Code Online (Sandbox Code Playgroud)

nginx node.js angularjs docker

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

服务器XSS与客户端XSS

什么是服务器XSS和客户端XSS 之间的区别的明确解释?

我阅读了OWASP网站上的解释,但对我来说不是很清楚.我知道反映的,存储的en DOM类型.

xss owasp

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

gulp命令在Jenkins中无法识别

我安装了gulp,它在我的cmd中运行良好.因此,当我尝试gulp命令时,它们运行良好.所以我要在我的cmd中走这条路:

C:\Program Files (x86)\Jenkins\workspace\project1
Run Code Online (Sandbox Code Playgroud)

我可以运行gulp(它是我的Jenkins上的github项目).但是当我在Jenkins本身(localhost)中处理我的project1时,gulp命令无法识别.詹金斯不知道吞咽.

我如何在Jenkins中整合gulp?所以我的詹金斯会知道它的命令.我读了一些关于node.js及其插件的内容.我也读过一些关于前端maven插件的内容,但它根本不清楚.

node.js jenkins gulp

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

kubernetes:获取pod的日志时,拨打tcp I / O超时错误

我正在研究OpenShift Origin 1.1(正在使用kubernetes作为其docker容器的编排工具)。我正在创建Pod,但是看不到构建日志。

[user@ip master]# oc get pods
NAME           READY     STATUS      RESTARTS   AGE
test-1-build   0/1       Completed   0          14m
test-1-iok8n   1/1       Running     0          12m
[user@ip master]# oc logs test-1-iok8n
Error from server: Get https://ip-10-0-x-x.compute.internal:10250/containerLogs/test/test-1-iok8n/test: dial tcp 10.0.x.x:10250: i/o timeout
Run Code Online (Sandbox Code Playgroud)

我的/var/logs/messages节目:

Dec  4 13:28:24 ip-10-0-x-x origin-master: E1204 13:28:24.579794   32518 apiserver.go:440] apiserver was unable to write a JSON response: Get https://ip-10-0-x-x.compute.internal:10250/containerLogs/test/test-1-iok8n/test: dial tcp 10.0.x.x:10250: i/o timeout
Dec  4 13:28:24 ip-10-0-x-x origin-master: E1204 13:28:24.579822   32518 errors.go:62] apiserver received an error that is …
Run Code Online (Sandbox Code Playgroud)

timeout openshift-origin kubernetes

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

无法使用Artifactory插件将Docker Image推送到Jenkins管道中的Artifactory

我在Artifactory上使用Docker Registry.我可以使用docker命令拉/推图像.现在我尝试使用Jenkins pipline推送图像.

图像被调用registry-url/docker/image:latest.我在Artifactory上有一个docker存储库,它被调用docker.(我能够使用docker命令拉动并推送到这个仓库).

这个阶段描述了我的Artifactory配置:

...
        stage('Deploy Docker image'){
            steps {
                script {
                    def server = Artifactory.server 'xxx'
                    def rtDocker = Artifactory.docker server: server
                    def buildInfo = rtDocker.push('registry-url/image:latest', 'docker')
                    //also tried:
                    //def buildInfo = rtDocker.push('registry-url/docker/image:latest', 'docker') 
                    //the above results in registry/docker/docker/image..
                    server.publishBuildInfo buildInfo
                }
            }
        }
...
Run Code Online (Sandbox Code Playgroud)

当我使用不同的路径时,我面临的manifest.json错误可能是正常的.我可以手动下载manifest.json : https://registry-url/artifactory/docker/image/latest/manifest.json.

我在Jenkins上使用了一个非常新版本的Docker:

Docker version 18.01.0-ce, build 03596f51b1
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好.但是当我运行管道时,我在Jenkins中收到以下错误(需要50秒):

Pushing image: registry-url/image:latest
...
com.github.dockerjava.api.exception.DockerClientException: Could not push image: unknown: Not Found
    at com.github.dockerjava.core.command.PushImageResultCallback.awaitSuccess(PushImageResultCallback.java:49)
    at org.jfrog.hudson.pipeline.docker.utils.DockerUtils.pushImage(DockerUtils.java:60) …
Run Code Online (Sandbox Code Playgroud)

artifactory jenkins docker docker-registry jenkins-pipeline

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

删除TeamCity中的旧版本后"重置"buildNumber

根据这个问题,我发现了如何删除Teamcity中的构建

这很好用.举个例子:我有20个构建版本,我删除了构建版本12到20个.所以我的最后一个构建版本是11.但是当我执行一个新版本时,它的构建版本为21.

是否可以在12号(再次)开始下一个构建?

我知道这不是一个好方法.但这是出于测试目的,我们不想要很多构建数量.我知道这不是我们将在真实环境中使用的东西.

.net teamcity build teamcity-9.0

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

函数中未使用参数的默认值

我有一个非常基本的PowerShell脚本:

Param(
    [string]$MyWord
)

function myfunc([string] $MyWord) {
    Write-Host "$MyWord"
}
myfunc @PSBoundParameters
Run Code Online (Sandbox Code Playgroud)

这是我的执行方式:

PS C:\>。\ test.ps1 -MyWord'hello'
你好

一切都很好。但是,如果-MyWord未指定,我想设置一个默认值。我尝试了这个:

Param(
    [string]$MyWord='hi'
)

function myfunc([string] $MyWord) {
    Write-Host "$MyWord"
}
myfunc @PSBoundParameters 
Run Code Online (Sandbox Code Playgroud)

但是比我的脚本的输出还空。当我不描述参数时,它什么也没打印。(如果我指定了参数,它只会显示“ hello”)。我也尝试过:

Param(
    [string]$MyWord
)

function myfunc([string] $MyWord) {
    [string]$MyWord='hi'
    Write-Host "$MyWord" 
}
myfunc @PSBoundParameters
Run Code Online (Sandbox Code Playgroud)

但是,当然,输出总是“ hi”而不是“ hello”。即使使用参数执行脚本-MyWord 'hello'

有人可以解释我在做什么吗?

当我不使用该功能时,它按预期工作:

Param(
    [string]$MyWord='hi'
)
Write-Host $MyWord
Run Code Online (Sandbox Code Playgroud)

输出:

PS C:\>。\ test.ps1 -MyWord'你好'
哈罗

PS C:\>。\ test.ps1
你好

powershell parameter-passing

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