我有一个与此类似的问题:有没有办法将 Python 程序编译为二进制并将其与 Scratch Dockerfile 一起使用?
在此页面中,我看到有人说 C 应用程序用-static.
所以我有一个新问题:是否pyinstaller有任何参数可以gcc -static让Python应用程序在Scratch Docker镜像中运行良好?
我是 docker 新手,所以,如果我有任何错误的想法,请指出。谢谢~
我的目标是在 docker 中运行由我或我所属的团队开发的 Web 服务器。
于是,我想到了三个步骤:
有一个图像,将 web 文件复制到其中,然后运行容器。所以,我执行以下步骤:
1-获取泊坞窗图像。
我是这样尝试的:docker pull centos,这样我就可以得到一个基于centos的图像。这里,我不关心centos的版本,当然,它的版本是6.7或者,只是标记为:最新。
在这里,我检查图像docker images,我可以看到它是这样的:
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/centos latest d123f4e55e12 3 weeks ago 196.6 MB
Run Code Online (Sandbox Code Playgroud)
所以,我认为这一步成功了。
2- 尝试将本地系统中的文件复制到容器中。
我停在路径:/tornado,它有一个名为 fordocker 的文件夹。
fordocker 包含网络服务器文件。
我尝试这样的共同点(基于指南):
docker cp fordocker/ d123f4e55e12:/web
Run Code Online (Sandbox Code Playgroud)
但!错误来了:
Error response from daemon: No such container: d123f4e55e12
Run Code Online (Sandbox Code Playgroud)
3-如果我成功地复制文件,我可以尝试这样的:docker run -d centos xxx python web.py。
这一步会出错吗?我还不知道。
我搜索了很多,但没有解释这种现象。
似乎每个人,除了我,使用公用设施都会成功。
那么,问题来了:
1-我认为的方法可行吗?我必须通过个人资料创建图像吗?
2-如果该方法可行,错误在哪里?普通cp是否基于我没有做过的其他事情?
3- 如果方法不可行,我该怎么办?自己创建一个图像?
祝你有美好的一天~
我的目标是将dict类型更改为如下字符串: name=tom&age=12%sex=m
首先,我喜欢这样:
params=sorted([(k, v) for k, v in dic.items()])
src=""
for param in params:
src+=param[0]+"="+param[1]+"&"
return src[:-1]
Run Code Online (Sandbox Code Playgroud)
但我希望得到更多可以完成改变的方式.
我想到了json包内置的python.我喜欢这样:
json.dumps(dict_arguments,sort_keys=True,separators=['&','='])
Run Code Online (Sandbox Code Playgroud)
结果出来了:
{"a"=1234&"b"=34532&"c"=3452}
Run Code Online (Sandbox Code Playgroud)
它是一个字符串类型.显然它不能解决我的问题.
所以,我想知道:
1,你能教我一些关于从dict到string改变外观的方法吗?
2,如果json包可以解决问题吗?我怎样才能改变{"a"=1234&"b"=34532&"c"=3452}到{a=1234&b=34532&c=3452},那么这将是SASY我.
非常感谢大家〜