小编Rob*_*ert的帖子

maven-dependency-plugin是否比其他maven使用其他类型的工件解析?

如果我使用maven-dependency-plugin插件,那么我就无法使用版本范围.此外,虽然较新版本在远程存储库中,但似乎未定义工件的版本.

为什么会这样?

使用maven-dependency-plugin除了其他maven之外的其他一些机制来解决依赖关系?如果是这样的话,为什么呢?

这是一个例子:

我创建了一个项目org.example:org.example.simple.project1:jar并使用版本1.0.0-SNAPSHOT,1.0.0,1.0.11.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)

java maven-2 build

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

Docker组合端口转发无法正常工作

当我使用非常简单的命令使用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 rundocker-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)

docker docker-compose

10
推荐指数
3
解决办法
5790
查看次数

Docker Traefik和letsencrypt通配符

我一直试图让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)

docker lets-encrypt traefik

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

在 docker 上使用 k6 测试本地主机站点

我的计算机上有一个应用程序在 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尝试绑定这个端口并转发到它。

预先致谢,柴姆

windows localhost docker k6

6
推荐指数
2
解决办法
6418
查看次数

docker 中的 pg_dump 服务器和 pg_dump 版本不匹配

当我psql --versionrailsApp容器内运行命令时,我得到9.4.12,当我在postgres容器内运行相同的命令时,我得到9.6.2. 我怎样才能让版本匹配?

当我尝试在执行pg_dumpsql 导入的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)

postgresql pg-dump pg docker docker-compose

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

码头工人:gitlab + traefik&端口22

我需要在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)

gitlab docker traefik

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

如何删除发送到 Docker 守护进程构建上下文的文件

我在我的主目录中运行了这个命令:

docker build .
Run Code Online (Sandbox Code Playgroud)

在我知道发生了什么之前,它向 Docker 守护进程发送了 20 GB 文件。我的笔记本电脑上没有剩余空间。如何删除复制的文件?我找不到他们。

docker dockerfile

5
推荐指数
2
解决办法
6603
查看次数

Docker 容器中的 Apache a2enconf

我试图遵循本教程中获得的代码,但没有成功。

在我的本地计算机上,我让它工作(尽管我必须修改重写规则)。但是当尝试使用 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)

Dockerfile

FROM php:5.6-apache
RUN a2enmod rewrite
COPY rest.conf /etc/apache2/conf-available/
RUN a2enconf rest …
Run Code Online (Sandbox Code Playgroud)

php apache rest mod-rewrite docker

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

如何在docker容器中运行psutil?

我试图从我的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)

python docker

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

需要在python脚本中运行docker run命令

我的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终端。

python docker

3
推荐指数
4
解决办法
8846
查看次数

从 bash 脚本文件运行 docker-compose

我是脚本新手,需要一些帮助。我正在使用 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)

shell scripting containers nginx docker

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

将AWS凭证传递给Docker

我有一个与AWS资源交互的Docker容器golang代码。在测试环境中,我们使用iam角色。但是如何在本地测试。如何使用AWS凭证在本地运行Docker。我正在使用Docker文件构建Docker映像。

docker docker-compose docker-swarm docker-machine aws-iam

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