小编Yaj*_*ajo的帖子

Dockerfile中有多个RUN与单链RUN,哪个更好?

Dockerfile.1执行多个RUN:

FROM busybox
RUN echo This is the A > a
RUN echo This is the B > b
RUN echo This is the C > c
Run Code Online (Sandbox Code Playgroud)

Dockerfile.2 加入他们:

FROM busybox
RUN echo This is the A > a &&\
    echo This is the B > b &&\
    echo This is the C > c
Run Code Online (Sandbox Code Playgroud)

每个都RUN创建一个图层,所以我总是认为更少的图层更好,因此Dockerfile.2更好.

RUN删除由前一个RUN(即yum install nano && yum clean all)添加的内容时,这显然是正确的,但是在每个RUN添加内容的情况下,我们需要考虑以下几点:

  1. 图层都应该只是添加高于前一个差异,所以如果以后层不会删除的东西在前面的一个补充,不存在应节省多少磁盘空间这两种方法之间的优势...

  2. 从Docker …

docker dockerfile

101
推荐指数
4
解决办法
4万
查看次数

如何强制bash扩展变量以将其作为参数传递?

我发现了一个奇怪的行为,我不知道如何解决.

$ var1=*

$ echo $var1
Audiobooks Downloads Desktop (etc.)

$ ls $var1
Audiobooks:

Downloads:
(etc)
Run Code Online (Sandbox Code Playgroud)

一切似乎都好.在声明时,变量被扩展,其他一切都可以工作.但看到这个:

$ var2=~/rpmbuild/{SRPMS,RPMS/*}/enki-*.rpm

$ echo $var2
/home/yajo/rpmbuild/{SRPMS,RPMS/*}/enki-*.rpm

$ ls $var2
ls: no se puede acceder a /home/yajo/rpmbuild/{SRPMS,RPMS/*}/enki-*.rpm: No existe el fichero o el directorio

$ ls /home/yajo/rpmbuild/{SRPMS,RPMS/*}/enki-*.rpm
/home/yajo/rpmbuild/RPMS/noarch/enki-12.10.3-1.fc18.noarch.rpm  /home/yajo/rpmbuild/SRPMS/enki-12.10.3-1.fc18.src.rpm
/home/yajo/rpmbuild/RPMS/noarch/enki-12.10.3-1.fc19.noarch.rpm  /home/yajo/rpmbuild/SRPMS/enki-12.10.3-1.fc19.src.rpm
Run Code Online (Sandbox Code Playgroud)

这一次,声明只会~被扩展,这就产生了我无法将其作为参数传递给它ls.但是,传递相同的字符串会产生预期的结果.

问题是:

  • 为什么有时会扩大,有时不会?
  • 如何模仿的行为$var1$var2

谢谢.

额外说明:

我尝试使用双引号和单引号,但结果相同.

variables bash expand

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

如何调试需要使用-m执行的python模块?

我在那里尝试过的每个调试器都需要一个源文件来调试。然而Python并不总是这样工作。

我有一个模块,它是一个文件夹,里面有__init__.py__main__.py文件等,我通常这样执行:

$ cd /parent/folder
$ python3 -m module_folder --help
Run Code Online (Sandbox Code Playgroud)

如果我不使用-m,相对导入就会失败。如果我只是将文件夹传递给pudb,pdb和其他人,调试器将失败:

$ cd /parent/folder
$ python3 -m pdb module_folder
Traceback (most recent call last):
  File "/usr/lib64/python3.3/pdb.py", line 1658, in main
    pdb._runscript(mainpyfile)
  File "/usr/lib64/python3.3/pdb.py", line 1536, in _runscript
    with open(filename, "rb") as fp:
IsADirectoryError: [Errno 21] Is a directory: 'module_folder'
Uncaught exception. Entering post mortem debugging
Running 'cont' or 'step' will restart the program
> /usr/lib64/python3.3/pdb.py(1536)_runscript()
-> with open(filename, "rb") as …
Run Code Online (Sandbox Code Playgroud)

python debugging command-line relative-import pudb

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

如果 Haskell 很懒,为什么 `>>` 可以工作?

我现在正在学习哈斯克尔。我读到的定义>>是:

(>>) :: m a -> m b -> m b  
x >> y = x >>= \_ -> y  
Run Code Online (Sandbox Code Playgroud)

凉爽的。然而,如果x没有被使用并且 Haskell 很懒,为什么会打印“hi”?

ghci> print "hi" >> return "end"
"hi"
"end"
Run Code Online (Sandbox Code Playgroud)

由于懒惰,类似的构造仅返回“end”并且永远不会解析第一个参数:

ghci> skip _ r = r
ghci> skip (print "hi") "end"
"end"
Run Code Online (Sandbox Code Playgroud)

我明白这>>必须像现在这样工作,否则单子就会失去意义。但我不明白为什么它实际上有效。

monads haskell

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

如何在不登录的情况下克隆公共启动板存储库?

我只想克隆一些东西,而不更改它们。

有什么方法可以克隆存储库,而又省去了开设帐户,设置SSH密钥等的麻烦呢?

bazaar launchpad

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