我的docker容器中有一个需要执行的Python脚本,但是一旦创建了容器,我还需要对它进行交互式访问(使用/ bin/bash).
我希望能够创建我的容器,执行我的脚本并在容器内部查看已发生的更改/结果(无需手动执行我的python脚本).
我面临的当前问题是,如果我在docker文件中使用CMD或ENTRYPOINT命令,则在创建容器后我无法返回容器.我尝试使用docker start和docker attach但是我收到错误:
sudo docker start containerID
sudo docker attach containerID
"You cannot attach to a stepped container, start it first"
Run Code Online (Sandbox Code Playgroud)
理想情况下,接近这个:
sudo docker run -i -t image /bin/bash python myscript.py
Run Code Online (Sandbox Code Playgroud)
假设我的python脚本包含类似的东西(它与它的作用无关,在这种情况下它只是创建一个带文本的新文件):
open('newfile.txt','w').write('Created new file with text\n')
Run Code Online (Sandbox Code Playgroud)
当我创建我的容器时,我希望我的脚本能够执行,我希望能够看到该文件的内容.所以类似于:
root@66bddaa892ed# sudo docker run -i -t image /bin/bash
bash4.1# ls
newfile.txt
bash4.1# cat newfile.txt
Created new file with text
bash4.1# exit
root@66bddaa892ed#
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,我的python脚本将在创建容器时执行,以生成新文件newfile.txt.这就是我需要的.
当我运行以下代码时,我得到了预期的输出:
var a = [1, 2, 3]
var b = a
if a === b { println("a === b") }
if a == b { println("a == b") }
Run Code Online (Sandbox Code Playgroud)
输出:
a === b
a == b
但是,如果我突然导入基金会我只有一个新的输出:
import Foundation
var a = [1, 2, 3]
var b = a
if a === b { println("a === b") }
if a == b { println("a == b") }
Run Code Online (Sandbox Code Playgroud)
输出:
a == b
有谁知道幕后发生了什么?谢谢.
我正在尝试在Python中创建一个函数,它将整数列表作为输入,并返回一个包含这些数字的所有正面和负面可能性的更大列表.
假装'+'是正数,' - '是负数
输出应符合:
foo([-4])
>>> [ [4], [-4] ]
foo([+, +])
>>> [ [+,+], [+,-], [-,+], [-,-] ]
foo([-, +])
>>> [ [+,+], [+,-], [-,+], [-,-] ]
foo([-1, 3])
>>> [ [1,3], [1,-3], [-1,3], [-1,-3] ]
foo( [+,-,+] )
>>> [ [-,-,-],[+,-,-],[-,+,-],[-,-,+],[+,+,-],[+,-,+],[-,+,+],[+,+,+] ]
Run Code Online (Sandbox Code Playgroud)