我正在尝试使用docker自动化maven构建.我想要构建的项目花了将近20分钟来下载所有依赖项,所以我尝试构建一个可以缓存这些依赖项的docker镜像,但它似乎并没有保存它.我的Dockerfile是
FROM maven:alpine
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
ADD pom.xml /usr/src/app
RUN mvn dependency:go-offline
Run Code Online (Sandbox Code Playgroud)
图像构建,它确实下载了所有内容.但是,生成的图像与基本maven:alpine
图像的大小相同,因此它似乎没有缓存图像中的依赖项.当我尝试使用图像时,mvn compile
它会经历整整20分钟的重新下载所有内容.
是否可以构建一个缓存我的依赖项的maven图像,这样每次我使用图像执行构建时都不必下载它们?
我正在运行以下命令:
docker build -t my-maven .
docker run -it --rm --name my-maven-project -v "$PWD":/usr/src/mymaven -w /usr/src/mymaven my-maven mvn compile
Run Code Online (Sandbox Code Playgroud)
我的理解是,RUN
在docker构建过程中的任何内容都会成为生成的图像的一部分.
我在网上发现了许多帖子,展示了如何openssl req ... -subj "/C=US..."
以非交互式方式生成证书。
我在任何地方都找不到显示该-subj
参数可用的所有选项的文档。我可以在某个地方找到不同的标记及其含义以及可接受的值吗?例如,我希望找到类似的东西:
C for country with acceptable country codes of US=United States, CA=Canada, etc.
Run Code Online (Sandbox Code Playgroud) 我正在将映像推送到私有注册表,我想查看有关与该注册表交互的详细信息。我试过 docker -D、--debug,但没有显示任何细节。
/ # docker -D push registry.company.com:8443/hello-world:test
The push refers to a repository [registry.company.com:8443/hello-world]
45761469c965: Layer already exists
test: digest: sha256:9fa82f24cbb11b6b80d5c88e0e10c3306707d97ff862a3018f22f9b49cef303a size: 524
Run Code Online (Sandbox Code Playgroud)
如何显示有关与我的私有注册表交互的 docker 客户端的详细信息?
我在Mac OSX上使用Chrom 66.0.3359.139。
我有一个URL,其中包含区分大小写的可变资源。看起来像这样。
http://example.com/find/resource
我想更改URL的大小写以标识其他资源。更改看起来像这样。
我遇到的问题是Chrome在发出请求之前将其更改回小写字母r。
如何告诉Chrome实际发出我键入的请求,而不更改URL的大小写?
我有一个这样的烧瓶应用程序
from flask import Flask
import logging
app = Flask(__name__)
@app.route('/')
def catch_all():
logging.warning("I'm a warning")
return "This is a REST API"
if __name__ == '__main__':
app.run(host='0.0.0.0', port=8080, debug=True)
Run Code Online (Sandbox Code Playgroud)
当我运行它时,我在日志中看到警告
WARNING:root:I'm a warning
Run Code Online (Sandbox Code Playgroud)
然后我创建一个测试,就像这样
import fulfillment
def test_index():
fulfillment.app.testing = True
client = fulfillment.app.test_client()
r = client.get('/')
assert r.status_code == 200
assert 'This is a REST API' in r.data.decode('utf-8')
Run Code Online (Sandbox Code Playgroud)
当我使用 运行测试时pytest
,我看不到测试中函数的日志消息。我发现如何查看在 pytest 运行期间创建的正常打印输出?,听起来很相似,但该pytest -s
选项不起作用,我认为它实际上是在谈论测试函数的输出,而不是被测函数。
如何查看被测函数的日志?
我正在设置一个多节点 hadoop 集群,并拥有节点之间无密码 SSH 的共享密钥。我命名了该文件~/.ssh/hadoop_rsa
,并且可以使用ssh -i ~/.ssh/hadoop_rsa host
.
我需要某种方法来告诉 hadoop 在连接到其他节点时使用这个备用 SSH 密钥。
我经常使用xip.io来访问Windows 10上的VirtualBox中本地流浪汉创建的VM.这些通常是不可路由的IP,如下所示:
http://examplephpsite.192.168.76.10.xip.io/
Chrome越来越频繁地收到DNS错误,导致我无法访问自己的网页.从chrome://net-internals/#dns
我看到这个错误:
examplephpsite.192.168.76.10.xip.io IPV4 error: -105 (ERR_NAME_NOT_RESOLVED)
Run Code Online (Sandbox Code Playgroud)
我在这里找到了一个解决方法:https://superuser.com/questions/712855/err-name-not-resolved-in-chrome-on-a-single-site,但我现在必须每天多次这样做.
导致此错误的原因是什么方法可以消除它,以便我的xip.io URL始终解析?