如果我使用maven-dependency-plugin插件,那么我就无法使用版本范围.此外,虽然较新版本在远程存储库中,但似乎未定义工件的版本.
为什么会这样?
使用maven-dependency-plugin除了其他maven之外的其他一些机制来解决依赖关系?如果是这样的话,为什么呢?
这是一个例子:
我创建了一个项目org.example:org.example.simple.project1:jar并使用版本1.0.0-SNAPSHOT,1.0.0,1.0.1和1.1.0-SNAPSHOT将它放入存储库
我现在以下列方式配置依赖插件:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>unpack-stuff<id>
<phase>initialize</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>org.example</groupId>
<artifactId>org.example.simple.project1.</artifactId>
<version>[1.0,1.1)</version>
<type>jar</type>
<overWrite>true</overWrite>
<outputDirectory>target/stuff</outputDirectory>
<includes>**/*.*</includes>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
如果依赖关系解析与其他依赖关系相同,那么版本应该(至少在我看来)解析为1.0.1.
相反,我得到以下异常:
[ERROR] FATAL ERROR
[INFO] ------------------------------------------------------------------------
[INFO] version was null for org.example:org.example.simple.project1.
[INFO] ------------------------------------------------------------------------
[INFO] Trace
java.lang.NullPointerException: version was null for org.example:org.example.simple.project1.
at org.apache.maven.artifact.DefaultArtifact.getBaseVersion(DefaultArtifact.java:362)
at org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout.pathOf(DefaultRepositoryLayout.java:47)
at org.apache.maven.artifact.repository.DefaultArtifactRepository.pathOf(DefaultArtifactRepository.java:110)
at org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:125)
at org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:74)
at org.apache.maven.plugin.dependency.fromConfiguration.AbstractFromConfigurationMojo.getArtifact(AbstractFromConfigurationMojo.java:242)
at org.apache.maven.plugin.dependency.fromConfiguration.AbstractFromConfigurationMojo.getProcessedArtifactItems(AbstractFromConfigurationMojo.java:143)
at org.apache.maven.plugin.dependency.fromConfiguration.UnpackMojo.getProcessedArtifactItems(UnpackMojo.java:138)
at …
Run Code Online (Sandbox Code Playgroud) 当我使用非常简单的命令使用docker:
docker run -p 80:80 nginx
Run Code Online (Sandbox Code Playgroud)
端口转发工作正常,当我使用浏览器/ curl转到localhost:80时,我可以获得nginx的"欢迎页面".
在我使用非常相似但docker-compose特定配置的同时:
version: '3'
services:
nginx:
image: nginx
ports:
- "80:80"
Run Code Online (Sandbox Code Playgroud)
当我这样做docker-compose up
并去浏览器时 - 我看到无限加载,所以看起来端口转发没有正确配置,但我无法理解配置中的错误.我尝试使用不同的浏览器和卷曲,我得到相同的结果 - 无限加载.
这里的Nginx只是一个例子,因为它很简单,实际上我和redis/mysql/java图像有同样的问题,所以问题与nginx无关.
我还尝试了以下方法通过docker-compose启动容器:
docker-compose run -p 80:80 nginx
docker-compose run --service-ports nginx
Run Code Online (Sandbox Code Playgroud)
但没有运气,我得到了同样的结果.
在这两种情况下(docker run
和docker-compose up
)我都有相同的网络驱动程序类型 - bridge
.
我比较docker inspect <container id>
了两种情况的结果:http://i.prntscr.com/obvxi0yESEa92znLDEu_PA.png
结果docker inspect <network id>
:http:
//i.prntscr.com/yyTpetvJSXa-dz4o9Pcl3w.png
ifconfig docker0
结果:
docker0 Link encap:Ethernet HWaddr 02:42:f1:9a:b6:72
inet addr:172.17.0.1 Bcast:0.0.0.0 Mask:255.255.0.0
inet6 addr: …
Run Code Online (Sandbox Code Playgroud) 我一直试图让traefik在我的域上安装通配符证书,这需要通过读取日志来进行dns挑战它似乎能够实际发出证书但不能正确安装它们
time="2018-04-07T19:10:35Z" level=debug msg="Unable to marshal provider conf *acme.Provider with error: json: unsupported type: chan *acme.StoredData"
legolog: 2018/04/07 19:10:57 [INFO][example.tld] The server validated our request
legolog: 2018/04/07 19:10:58 [INFO][*.example.tld] acme: Validations succeeded; requesting certificates
legolog: 2018/04/07 19:11:01 [INFO][*.example.tld] Server responded with a certificate.
time="2018-04-07T19:11:01Z" level=error msg="Error loading new configuration, aborted unable to generate TLS certificate : tls: failed to find any PEM data in certificate input"
time="2018-04-07T19:12:33Z" level=debug msg="http2: server: error reading preface from client ******omitted***: remote error: tls: unknown …
Run Code Online (Sandbox Code Playgroud) 我的计算机上有一个应用程序在 localhost:1235 上运行,我正在尝试对其进行负载测试。
我为docker安装了k6容器来测试它,但当然从docker的性质来看,我的容器有不同的localhost。我试图理解要做什么。
我运行以下命令:
docker run -it --rm --net=host -v c:/users/k6:/k6 loadimpact/k6 run /k6/script
我在某处读到 --net=host 在 Windows 上不起作用,对吗?如何找到主机IP?
我尝试按照本教程运行: http://blog.michaelhamrah.com/2014/06/accessing-the-docker-host-server-within-a-container/
我找到的IP 172.17.0.1 在我的测试中不起作用。
我也尝试添加-p 1235:1235
但失败了,我猜docker尝试绑定这个端口并转发到它。
预先致谢,柴姆
当我psql --version
在railsApp
容器内运行命令时,我得到9.4.12
,当我在postgres
容器内运行相同的命令时,我得到9.6.2
. 我怎样才能让版本匹配?
当我尝试在执行pg_dump
sql 导入的Rails App 上进行迁移时,出现以下错误。
pg_dump: server version: 9.6.2; pg_dump version: 9.4.12
pg_dump: aborting because of server version mismatch
rails aborted!
Run Code Online (Sandbox Code Playgroud)
这是我的 Docker-compose.yml 文件:
version: "2.1"
services:
railsApp:
build:
context: ./
ports:
- "3000:3000"
links:
- postgres
volumes:
- .:/app
postgres:
image: postgres:9.6
ports:
- "5432:5432"
volumes:
- ./.postgres:/var/lib/postgresql
Run Code Online (Sandbox Code Playgroud)
Dockerfile:
FROM ruby:2.3.3
# setup /app as our working directory
RUN mkdir /app
WORKDIR /app
# Replace …
Run Code Online (Sandbox Code Playgroud) 我需要在Traefik之后建立Gitlb。
除了通过命令行对应用程序进行身份验证以外,其他所有操作都有效-我不知道如何通过traefik公开端口22。
知道如何设置吗?如何通过traefik暴露docker容器的端口22?
我将默认端口从22更改为10022。
我正在通过 netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1132/sshd
tcp 0 0 0.0.0.0:5355 0.0.0.0:* LISTEN 1126/systemd-resolv
tcp6 0 0 :::22 :::* LISTEN 1132/sshd
tcp6 0 0 :::443 :::* LISTEN 1590/docker-proxy
tcp6 0 0 :::10022 :::* LISTEN 1440/docker-proxy
tcp6 0 0 :::5355 :::* LISTEN 1126/systemd-resolv
tcp6 0 0 :::80 :::* LISTEN 1602/docker-proxy
tcp6 0 0 :::8080 :::* LISTEN 1578/docker-proxy
udp 0 …
Run Code Online (Sandbox Code Playgroud) 我在我的主目录中运行了这个命令:
docker build .
Run Code Online (Sandbox Code Playgroud)
在我知道发生了什么之前,它向 Docker 守护进程发送了 20 GB 文件。我的笔记本电脑上没有剩余空间。如何删除复制的文件?我找不到他们。
在我的本地计算机上,我让它工作(尽管我必须修改重写规则)。但是当尝试使用 Docker 容器时,当我尝试访问示例 REST 资源时,我收到错误 404:
$docker-compose logs -f
web_1 | 172.27.0.1 - - [19/Jul/2017:17:45:58 +0000] "GET /clients/jim HTTP/1.1" 404 501 "-" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:54.0) Gecko/20100101 Firefox/54.0"
web_1 | 172.27.0.1 - - [19/Jul/2017:17:46:20 +0000] "GET /clients/anne HTTP/1.1" 404 502 "-" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:54.0) Gecko/20100101 Firefox/54.0"
Run Code Online (Sandbox Code Playgroud)
在我看来,错误发生在a2enconf
,因为如果我使用.htaccess
文件并在 中添加以下行,它就可以工作volumes
:
- "./code/rest.conf:/var/www/html/.htaccess:Z"
Run Code Online (Sandbox Code Playgroud)
FROM php:5.6-apache
RUN a2enmod rewrite
COPY rest.conf /etc/apache2/conf-available/
RUN a2enconf rest …
Run Code Online (Sandbox Code Playgroud) 我试图从我的python应用程序中监视我的docker容器的CPU和内存.我打算用psutil来完成这项工作.我在其他论坛上看到/proc
可以在psutil中更改.
import psutil
psutil.PROCFS_PATH = 'proc/self'
psutil.cpu_percent()
Run Code Online (Sandbox Code Playgroud)
这给了我以下错误:
File "app.py", line 22, in <module>
web-vote-app_1 | r = psutil.cpu_percent()
web-vote-app_1 | File "/usr/local/lib/python2.7/site-packages/psutil /__init__.py", line 1773, in cpu_percent
web-vote-app_1 | _last_cpu_times = cpu_times()
web-vote-app_1 | File "/usr/local/lib/python2.7/site-packages/psutil/__init__.py", line 1645, in cpu_times
web-vote-app_1 | return _psplatform.cpu_times()
web-vote-app_1 | File "/usr/local/lib/python2.7/site-packages/psutil/_pslinux.py", line 544, in cpu_times
web-vote-app_1 | fields = [float(x) / CLOCK_TICKS for x in fields]
web-vote-app_1 | ValueError: could not convert string to float: (python)
web-result_1 | * Running …
Run Code Online (Sandbox Code Playgroud) 我的Docker命令是:
docker run --rm wappalyzer/cli https://wappalyzer.com
Run Code Online (Sandbox Code Playgroud)
当我运行我的python脚本时:
#!/usr/bin/python
from subprocess import call
import json
import os
import docker
docker run --rm wappalyzer/cli "MYURL"
Run Code Online (Sandbox Code Playgroud)
它说
File "t.py", line 7
docker run --rm wappalyzer/cli "MYURL"
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
我的操作系统是ubuntu 14.04,我正在使用ubuntu终端。
我是脚本新手,需要一些帮助。我正在使用 YML 文件构建 docker 容器。我编写了 YML 代码来自动化我的 Web 服务器(docker-compose.yml)和数据库服务器(docker-compose-mongo.yml)。
现在我想构建一个 bash 脚本,它将调用两个 yml 文件并一起运行。
我想知道我需要在我的 shell 脚本中输入什么命令来调用这两个 yml 文件并将它们一起运行。我最初只是使用
#!/bin/bash
run docker-compose.yml
Run Code Online (Sandbox Code Playgroud)
但是上面的代码不起作用。
附言。下面是我用于 Web 服务器的 yml 文件
version: "3"
services:
web:
image: nginx:latest
deploy:
replicas: 5
resources:
limits:
cpus: "0.2"
memory: 330M
restart_policy:
condition: on-failure
ports:
- "80:80"
# networks:
# - webnet
# networks:
# webnet:
Run Code Online (Sandbox Code Playgroud) 我有一个与AWS资源交互的Docker容器golang代码。在测试环境中,我们使用iam角色。但是如何在本地测试。如何使用AWS凭证在本地运行Docker。我正在使用Docker文件构建Docker映像。
docker ×11
python ×2
traefik ×2
apache ×1
aws-iam ×1
build ×1
containers ×1
docker-swarm ×1
dockerfile ×1
gitlab ×1
java ×1
k6 ×1
lets-encrypt ×1
localhost ×1
maven-2 ×1
mod-rewrite ×1
nginx ×1
pg ×1
pg-dump ×1
php ×1
postgresql ×1
rest ×1
scripting ×1
shell ×1
windows ×1