亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Minikube,python alpine:找不到 python 命令

Minikube,python alpine:找不到 python 命令

拉丁的傳說 2023-03-08 11:17:27
對于 K8 的專家來說,這聽起來像是一個非常愚蠢的問題。但是我已經為此苦苦掙扎了一段時間,因此是下面的問題。我正在嘗試通過 Minikube 和 docker 在本地部署一個簡單的 Kubernetes 應用程序來測試 sidecar 容器模式。讓我們從邊車容器元素開始:文件FROM python:3.6-alpineRUN pip install boto3==1.14.20RUN pip install --upgrade awscli s3cmd   ENV APP_HOME_DIR=/home/sidecarRUN mkdir $APP_HOME_DIRADD run.sh $APP_HOME_DIRADD s3_sync.py $APP_HOME_DIRRUN chmod +x $APP_HOME_DIR/s3_sync.pyRUN chmod +x $APP_HOME_DIR/run.shENV BUCKET_NAME=ENV PROJECT_NAME=ENV FEATURE_BRANCH=ENV LOCAL_DIR=WORKDIR $APP_HOME_DIRENTRYPOINT ["./run.sh"]run.sh#!/bin/shwhile truedo    echo "Triggering an S3-SYNC"    python /home/sidecar/s3_sync.py -b $BUCKET_NAME -p $PROJECT_NAME -f $FEATURE_BRANCH -l $LOCAL_DIR    sleep 10done以及 python 文件s3_sync.py的簡化版本:import loggingimport argparselogging.basicConfig(    level=logging.INFO,    format="%(asctime)s [%(levelname)s] %(message)s",    handlers=[logging.FileHandler("debug.log"), logging.StreamHandler()],)logger = logging.getLogger(__name__)MASTER = "master"def main():    bucket_name = args.bucket_name    project_name = args.project_name    branch = args.feature_branch    local_dir = args.local_dir    sync_type = "production" if branch == MASTER else "review"    logger.info(f"S3-SYNC starting for {sync_type} environment")if __name__ == "__main__":    parser = argparse.ArgumentParser()    parser.add_argument("-b", "--bucket_name", help="s3 bucket name", required=True)    parser.add_argument("-p", "--project_name", help="project name to sync", default="")    parser.add_argument("-f", "--feature_branch", help="git feature branch name", default="master")    parser.add_argument("-l", "--local_dir", help="local dir where to sync the s3 objects", required=True)    args = parser.parse_args()    main()如果我構建上面的內容并運行它:docker build -t sidecar_python .docker run -e BUCKET_NAME=MYBUCKET -e PROJECT_NAME=MYPROJECT -e FEATURE_BRANCH=MYBRANCH -e LOCAL_DIR=/home sidecar_python事情進展順利。
查看完整描述

1 回答

?
喵喔喔

TA貢獻1735條經驗 獲得超5個贊

該/usr目錄包含各種系統和應用軟件。特別是,Python 二進制文件通常位于/usr/bin/python3Linux 系統(或容器)中。


您的 Kubernetes YAMLemptyDir在/usr. 這會隱藏該目錄樹中的所有內容,包括 Python 二進制文件和所有 Python 系統庫。這導致了這個錯誤。


將卷安裝在其他地方可以避免這個問題。容器化應用程序往往不會對“標準”FHS 路徑過于挑剔,所以我可能會設置


  env:

    - name: LOCAL_DIR

      value: "/dags"

  volumeMounts:

    - name: dags

      mountPath: /dags


查看完整回答
反對 回復 2023-03-08
  • 1 回答
  • 0 關注
  • 157 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號