在msys2中,任何时候我尝试执行一个docker run [image] [cmd]命令,这样我试图在docker容器中运行时会覆盖Dockerfile中指定的命令,它会在本地查找命令,如果它不存在则会失败.
例如,我的组织有一个docker镜像,其中python可执行文件位于,/usr/src/venv/bin/python而python不在$PATH.这不是我的本地python安装的地方,当我尝试运行时,docker run myimage /usr/src/venv/bin/python test.py我得到这个错误:OCI runtime create failed: container_linux.go:348: starting container process caused "exec: \"C:/msys64/usr/src/venv/bin/python\": stat C:/msys64/usr/src/venv/bin/python: no such file or directory"这个图像不是一个Windows图像,所以它不应该看着C:所以所以我必须得出结论它在本地寻找该命令而不是在容器内.
注意:我正在运行的$PATHdocker 是添加到msys2内部的Windows的Docker .
$ which docker
/c/Program Files/Docker/Docker/Resources/bin/docker.exe
Run Code Online (Sandbox Code Playgroud)
我使用过的一个解决方法是创建一个新的Dockerfile,它只有一行代表我想要的图像,另一个就是我想要的命令.然后我可以在docker run some-image不指定命令的情况下运行并且它可以工作
有没有什么方法可以在msys2中解决这个问题而不需要上面描述的烦人的解决方法?
如果我尝试覆盖现有的 blob:
blob_client = BlobClient.from_connection_string(connection_string, container_name, blob_name)
blob_client.upload_blob('Some text')
Run Code Online (Sandbox Code Playgroud)
我得到一个ResourceExistsError.
我可以检查 blob 是否存在,将其删除,然后上传:
try:
blob_client.get_blob_properties()
blob_client.delete_blob()
except ResourceNotFoundError:
pass
blob_client.upload_blob('Some text')
Run Code Online (Sandbox Code Playgroud)
考虑到 python azure blob 存储 API 可用的内容以及惯用的 python 样式,是否有更好的方法来覆盖现有 blob 的内容?我期望有某种覆盖参数可以在upload_blob方法中选择性地设置为 true ,但它似乎不存在。
我正在构建一个需要高速连接的 python3 应用程序。作为一个纯 python 库,PyMySQL 在连接和执行查询方面会比基于 C 的 MySQLdb 慢得多吗?
PyMySQL 是否能很好地支持 Python 的未来版本?
如果没有,有人可以提出可靠的替代方案吗?