【问题标题】:Run OCI CLI command from dockerfile从 dockerfile 运行 OCI CLI 命令
【发布时间】:2019-11-07 13:56:01
【问题描述】:

我有一个关于 Oracle OCI CLI 的问题。我创建了一个映像 (LINK),其中包含开始使用 Oracle 云所需的所有内容。您必须修改配置文件才能开始使用 Oracle 云中的所有内容。

或者您可以设置您的 ora 云环境:

oci setup config

但是我想用 dockerfile 执行一些 OCI 命令,但是真的很复杂,我做不到。我正在这样做

FROM juliovg/oracle-oci-19
ENV HOME_DIR=/root \ 
CODE_DIR=/root/sample/code \
BUCKET_NAME=Code
WORKDIR $HOME_DIR
RUN rm -rf $HOME_DIR/.oci
RUN wget "<.OCI_FILE_URL_UPLOADED_INTO_A_BUCKET>/my_key.tar.gz"
RUN tar -xvf my_key.tar.gz && rm -rf my_key.tar.gz
RUN mkdir -p $CODE_DIR
RUN cd $CODE_DIR
RUN touch my_file.txt

RUN oci os bucket create -c <MY_COPARTMENT> --name <NEW_BUCKET_NAME>

这是错误-->

我需要在请求时使用 RUN 或 CMD 执行一些 OCI 命令(我都尝试了)

注意:OCI_FILE_URL_UPLOADED_INTO_A_BUCKET 是一个 zip 文件,其中包含与另一台计算机进行的配置,其想法是与多个用户共享相同的密钥,当与另一台计算机使用 juliovg/oracle-oci-19认为

【问题讨论】:

标签: docker dockerfile oracle-call-interface oracle-cloud-infrastructure


【解决方案1】:

似乎是路径问题,dockerfile RUN 命令调用可执行文件,如/bin/sh -c executable。所以最好给出像RUN /root/bin/oci -v这样的可执行文件的完整路径。

FROM juliovg/oracle-oci-19
ENV HOME_DIR=/root \ 
CODE_DIR=/root/sample/code \
BUCKET_NAME=Code
WORKDIR $HOME_DIR
RUN rm -rf $HOME_DIR/.oci
RUN mkdir -p $CODE_DIR
RUN cd $CODE_DIR
RUN touch my_file.txt
ENV LC_ALL=en_US.utf-8
ENV LANG=en_US.utf-8
RUN /root/bin/oci -v
RUN /root/bin/oci os bucket create -c MY_COPARTMENT --name NEW_BUCKET_NAME

【讨论】:

    【解决方案2】:

    您应该考虑到容器可能不知道 OCI CLI 的可执行文件的位置。您应该在 Dockerfile 中为其提供 OCI CLI 的完整路径

    【讨论】:

      猜你喜欢
      • 2021-01-29
      • 2019-01-28
      • 2017-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-18
      • 2020-04-08
      • 1970-01-01
      相关资源
      最近更新 更多