小编Tho*_*sch的帖子

在 Dockerfile 中使用 ARG 和 ENV

我正在学习如何在 Dockerfiles 中使用 ARG 和 ENV。我有这个简单的 Dockerfile:

ARG my_arg
ARG other_arg=other_default

FROM centos:7

ENV MY_ENV $my_arg
ENV OTHER_ENV $other_arg

CMD echo "$MY_ENV $OTHER_ENV"
Run Code Online (Sandbox Code Playgroud)

当我构建它时: docker build --build-arg my_arg=my_value

并运行它: docker run <resulting-image>

我没有看到预期的输出,这将是

my_value other_default
Run Code Online (Sandbox Code Playgroud)

相反,我看到的是空字符串。我究竟做错了什么?

docker dockerfile docker-build

9
推荐指数
2
解决办法
1825
查看次数

Gradle 构建中的活动工作人员数量限制是多少?

我试图在我的笔记本电脑上并行运行测试,它有 4 个物理 CPU 和 8 个逻辑 CPU。

?  sysctl -n hw.ncpu
8
?  sysctl -n hw.physicalcpu
4
Run Code Online (Sandbox Code Playgroud)

这是我正在运行的命令:

./gradlew remoteChromeTest -Pparallel=4 --continue --max-workers=8

parallel物业进入maxParallelForks了的Test任务。

尽管如此,Gradle 似乎最多只能同时占用 4 个工人(其中一个似乎是为构建本身预留的),这与物理 CPU 的数量相吻合。

输出如下所示:

> Task :remoteChromeTest
Running tests in parallel using 4 processes.
<============-> 92% EXECUTING [12s]
> :remoteChromeTest > 0 tests completed
> :remoteChromeTest > Executing test spec.Spec1
> IDLE
> :remoteChromeTest > Executing test spec.Spec2
> :remoteChromeTest > Executing test spec.Spec3
Run Code Online (Sandbox Code Playgroud)

因此,只有 3 …

testing gradle spock

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

当调用相同的函数时,AngularJS ng-click不起作用,但ng-change是

编辑 代码是正确的,问题是因为包括'ngTouch',请参阅下面我自己的答案.

我可能在这里犯了一些愚蠢的错误,但对于我的生活,我找不到它.我有这个标记,它与控制器正确连接:

<input type="text" ng-change="doStuff()" ng-model="stuff"/>
<button ng-click="doStuff()">doStuff</button>
Run Code Online (Sandbox Code Playgroud)

控制器代码:

console.log('Hi from controller');
$scope.stuff = "something";
$scope.doStuff = function() {
   alert('doing stuff');
}
Run Code Online (Sandbox Code Playgroud)

单击按钮时没有任何问题.如果我更改了输入字段,我会收到警报,因此ng-change有效,但ng-click却没有.让我知道这是不是足够的信息,但我不知道还有什么提供,一般设置似乎工作正常...

HTML的其余部分不包含任何Angular指令,并且在myModule.config中加载如下:

$stateProvider
    .state('stuff', {
            templateUrl: 'pages/stuff.html',
            url: '/stuff',
            controller: 'StuffCtrl'
     })
Run Code Online (Sandbox Code Playgroud)

并且控制器的定义如下:

angular.module('myModule')
    .controller('StuffCtrl', function ($scope) {
        // above code
    });
Run Code Online (Sandbox Code Playgroud)

javascript angularjs angularjs-ng-click

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

如何使用Jenkins Pipeline检出Pull-Request?

我想构建一个集成多个存储库的管道。

总体思路:

  1. 提供分支名称作为输入。
  2. 使用GitHub-API在多个项目中查找Pull-Request,这些项目是从具有该名称的分支创建的。
  3. 从多个存储库进行(浅)克隆,并检出指定的Pull-Requests。

请注意,我不是在尝试从Pull-Request触发构建本身。触发作业只是一个普通的管道脚本。因此checkout scm不适用于我的情况。我很高兴从Pull-Requests触发此操作。但是,许多Jenkins的Multi-Branch插件对我没有帮助,因为它们仅假定单个存储库是构建的一部分。

到目前为止,我大部分时间都避免打gitsh招呼,因为这将使我接近抛弃所有Jenkins-Git集成。

我如何才能使用Pipeline checkout方法直接签出Pull-Request?

这甚至在checkout方法范围内吗?大概,我正在寻找的是直接与Jenkins的JGit客户端进行交互,这时我可能会同样使用sh命令...

git github jenkins jenkins-pipeline

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

有没有办法在使用 Spock 框架时使用 @MockBean 注释

我在尝试 Spock 并在编写控制器测试时遇到了一个有趣的问题。

WebMvcTest(value = SomeController.class)
@AutoConfigureMockMvc
@ActiveProfiles(value = "restapi")
@Import(value = SecurityConfiguration)
class AccountBalanceControllerTest extends Specification {

@Autowired
SomeController someController

@MockBean
SomeService someService

def "lets test it" {
  given: 
      someService.findAllByName(_) >> ["Some", "Work"]
  when:
    def response = mockMvc.perform(get("/v1/someName/545465?fast=false").with(user("mvc-test").roles("SOME_ACCOUNTS")))
  then: 
      response.andExpect(status().isOk()) 
}


}
Run Code Online (Sandbox Code Playgroud)

所以问题是SomeService实例上的模拟方法不起作用,因为它使用不同的 Mock 类来模拟类的实例SomeService 。我在设置中使用来自 Spock 的静态 Mock 方法,然后使用 setterSomeService在控制器中设置。我的问题是有什么优雅的方法可以用于@MockBeanSpockSpecification测试。

spock spring-test-mvc spring-boot

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

如何让 SonarJS 显示 ESLint 问题?

我正在尝试通过以下方式将 ESLint 问题导入 SonarQube:
eslint -f json -o report.json .
然后使用 key 运行 sonar-scanner -Dsonar.eslint.reportPaths=report.json

但是,SonarQube 分析仅报告存储库 SonarAnalyzer 提供的规则的问题。如何让 SonarQube 也报告 ESLint 问题?

eslint sonarjs

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

Ansible:如何获取当前库存位置

我有许多 Ansible 环境:

environments
  dev
    hosts
    group_vars/
  prod
    hosts
    group_vars/
Run Code Online (Sandbox Code Playgroud)

我需要创建一个“设置”剧本,它将复制 group_vars我使用的环境中的一些文件。

例如ansible-playbook -i environments/dev setup.yml --extra-vars="target=server1"

应该将文件从server1复制到environments/dev

目前我有任务:

 tasks:
 - name: Copy SSL certificate
   fetch:
      src: /path/to/file.crt
      dest: <inventoty_path>
      flat: yes
Run Code Online (Sandbox Code Playgroud)

但我不知道该用来做什么<inventory_path>

是否有设置当前库存绝对路径的变量?或者一种获取它的方法(无需为此设置额外的变量)?

ansible

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

Java泛型:此模式的意图是什么?

我已经在Jenkins API中看到了这一点,并且我想了解这种模式的目的。我无法掌握的意义JobTRunT

Class Run<JobT extends Job<JobT,RunT>,RunT extends Run<JobT,RunT>>

来自:https : //javadoc.jenkins.io/hudson/model/Run.html

java generics jenkins-api

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