小编Pra*_*ngh的帖子

如何使用多个基础图像来构建docker镜像

我使用了基础docker镜像(openjdk)来创建一个具有简单Java程序的图像.

但我想知道我是否在docker文件中使用2个基本图像.我们怎么做?我不认为docker支持以下任何东西:

FROM dockerImaage1
FROM dockerImage2
Run Code Online (Sandbox Code Playgroud)

其中一个场景,这是为什么需要就是我想要的图像ubuntuopenjdk,所以一个办法就是我使用Ubuntu的基本图像和泊坞窗中的文件写入指令来安装的OpenJDK,设置JAVA_HOME变量等,这无疑是很麻烦.

另一种选择,我喜欢使用openjdkubuntu内部基础的基本图像(如果可能的话).

可能有更典型的情况,我们可能需要的是严重的特征.

SO 如何在泊坞窗文件中使用2的基本图像的任何想法?还有人这样做过吗?

我在这里找到了一个逆向工程的链接,但它有一些限制,比如如果ubuntu的docker文件使用ADD或COPY等命令,逆向工程就会失败.

ubuntu docker dockerfile

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

蜘蛛必须返回Request,BaseItem,dict或None,得到'set'

我想从这里下载所有产品的图像.我的蜘蛛看起来像:

from shopclues.items import ImgData
import scrapy

class multipleImages(scrapy.Spider):
     name='multipleImages'
     start_urls=['http://www.shopclues.com/electronic-accessories-8/cameras-18/cameras-special.html?search=1&q1=camera',]

     def parse (self, response):
        for url in response.css('div.products-grid div.grid-product):
                    yield {
                    ImgData(image_urls=[url.css('img::attr(src)').extract()])
                    }
Run Code Online (Sandbox Code Playgroud)

items.py:

import scrapy
from scrapy.item import Item
class ShopcluesItem(scrapy.Item):
   # define the fields for your item here like:
   # name = scrapy.Field()
   pass

class ImgData(Item):
    image_urls=scrapy.Field()
    images=scrapy.Field()
Run Code Online (Sandbox Code Playgroud)

但是我在运行蜘蛛时遇到以下错误:

2016-09-29 11:56:19 [scrapy] DEBUG: Crawled (200) <GET http://www.shopclues.com/robots.txt> (referer: None)
2016-09-29 11:56:20 [scrapy] DEBUG: Crawled (200) <GET http://www.shopclues.com/electronic-accessories-8/cameras-18/cameras-special.html?search=1&q1=camera> (referer: None)
2016-09-29 11:56:20 [scrapy] ERROR: …
Run Code Online (Sandbox Code Playgroud)

python scrapy

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

Docker-如何使用syslog在主机上记录日志?

我希望将容器的日志保存到主机中每个容器的文件中。我阅读了有关通过日志记录驱动程序执行相同操作的信息。

由于我的主机运行ubuntu 14.04 rsyslog(默认情况下已运行),因此我想使用syslog

以下命令用于运行容器:

docker run -it --log-driver=syslog --log-opt syslog-address=udp://localhost:514 prashant23/ubuntu-java:sample-jdbc-project bash
Run Code Online (Sandbox Code Playgroud)

我没有任何错误地进入了容器。就这样?我怎么知道在哪里可以看到主机上的日志?我做对了吗?我不知道syslog。我是否还需要在容器上配置系统日志?有没有更好的方法来达到相同的目的。

我不知道该用什么syslog-address。从哪里可以获取此参数的值?我在某处读取默认值是udp://localhost:514

logging syslog docker

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

在比较Java中的String时,是否需要检查null和""?

假设我必须比较两个Strings:

public String checkComaprision(String str) {
    if (!("Hello".equals(str))) {
        System.out.println("String didn't match to hello");
    }

    if ("".equals(str) || null == str || (!str.equals("Hello"))) {
        System.out.println("String didn't match to hello");
    }
}
Run Code Online (Sandbox Code Playgroud)

这里我使用了两种字符串比较内部字符串的方法.在实际比较之前,我已经在许多地方阅读过比较字符串""和字符串null.但我认为第一种情况会正常,如果是这样,那我为什么要检查null并留空?

有没有第一次比较失败的情况?哪种方法更好?

java string

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

标签 统计

docker ×2

dockerfile ×1

java ×1

logging ×1

python ×1

scrapy ×1

string ×1

syslog ×1

ubuntu ×1