利用docker挂载不同账号的认证文件到容器中,可实现多账号管理,先在dockerhub试用了star最多的镜像,但其1GB的占用太大了,还是自己动手整一个吧。
Dockerhub 链接
qwinwin/oci-cli
默认TAG基于 python:3-slim-buster
,镜像总大小294MB
Dockerfile 编写
选择基础镜像
oci-cli有oracle官方维护的PyPI,可以使用pip直接安装,那么找python镜像就好了
最初为了尽可能减小镜像体积选择用alpine即tag:3-alpine
(同一行的镜像都是一样的)
但由于alpine太过精简,需要配置安装cryptography的依赖环境,后来发现用 3-slim-buster
做基础镜像体积还更小。。(debian永远的神!)
安装oci-cli
pip安装后初始化一下,最后指定ENTRYPOINT就行了
1 | RUN pip install oci-cli && \ |
附上Dockerfile
Dockerfile
debian
1 | FROM python:3-slim-buster |
alpine
1 | FROM python:3-alpine |
配置本地环境
在~/.bashrc
中添加alias,以下可供参考
1 | alias oci_kr="docker run --rm -i -v /home/ocicli/kr:/root/.oci qwinwin/oci-cli" |
以上oci_kr
和oci_us
分别使用/home/ocicli/kr
和/home/ocicli/us
两个文件夹下的凭证文件,以此实现不同账号的操作管理
如果要进行上传(下载),记得还要挂载本地要上传文件的目录,如下例:ociupload
命令将本地文件夹/hdd/oracle_ooss
中所有文件上传至Oracle OSS
1 | alias ociupload="docker run --rm -i -v /home/ocicli/kr:/root/.oci -v /hdd/oracle_oss:/root/upload qwinwin/oci-cli os object bulk-upload --bucket-name bucket-oracle-kr --src-dir /root/upload/ --no-overwrite" |
Reference
OCI-CLI Documentation
AWS-CLI (docker)
jpoon/oci-cli
Install cryptography in alpine