【问题标题】:"fatal: unable to auto-detect email address" in DOCKERDOCKER 中的“致命:无法自动检测电子邮件地址”
【发布时间】:2021-06-08 15:39:57
【问题描述】:

我的 docker run 失败了,因为 git 抱怨我没有设置旧图像不需要的用户配置。

From git.mysite.com:user/project
 * branch            dev -> FETCH_HEAD
*** Please tell me who you are.
Run
   git config --global user.email "you@example.com"
   git config --global user.name "Your Name"
to set your account's default identity.
Omit --global to set the identity only in this repository.
fatal: unable to auto-detect email address (got 'root@V_2_compute1.(none)')

我有两个非常相似但行为不同的 Dockerfile。

第一个以nvcr.io/nvidia/tensorflow:20.02-tf1-py3 作为源,第二个以nvcr.io/nvidia/tensorflow:20.12-tf2-py3 作为源。 第一个是 Ubuntu 18.04,第二个是 Ubuntu 20.04。检查容器时,它们有不同的 git 版本(2.17.1 vs 2.25.1),但我不确定这是否是问题所在。

这里是两个 Dockerfile(简化):

# syntax=docker/dockerfile:experimental

FROM nvcr.io/nvidia/tensorflow:20.02-tf1-py3 as intermediate

ARG SSH_PRIVATE_KEY

RUN apt-get update \
&& export DEBIAN_FRONTEND=noninteractive \
&& apt-get install -y git \
&& mkdir /srv/username \
&& cd /srv/username
RUN mkdir -p -m 0600 ~/.ssh && ssh-keyscan git.mysite.com >> ~/.ssh/known_hosts
ADD "https://www.random.org/cgi-bin/randbyte?nbytes=10&format=h" skipcache
RUN --mount=type=ssh git clone -b master git@git.mysite.com:user/project.git /srv/username/project
ENV PYTHONPATH "${PYTHONPATH}:/srv/username/project"
CMD /usr/sbin/service ssh restart && cd /srv/username/project && git pull origin feature-branch && git checkout feature-branch \
&& /srv/username/project/script.py 

有问题的:

# syntax=docker/dockerfile:experimental

FROM nvcr.io/nvidia/tensorflow:20.12-tf2-py3 as intermediate

ARG SSH_PRIVATE_KEY

RUN apt-get update \
&& export DEBIAN_FRONTEND=noninteractive \
&& apt-get install -y git \
&& mkdir /srv/username \
&& cd /srv/username
RUN mkdir -p -m 0600 ~/.ssh && ssh-keyscan git.mysite.com >> ~/.ssh/known_hosts
ADD "https://www.random.org/cgi-bin/randbyte?nbytes=10&format=h" skipcache
RUN --mount=type=ssh git clone -b master git@git.mysite.com:user/project.git /srv/username/project
ENV PYTHONPATH "${PYTHONPATH}:/srv/username/project"
CMD /usr/sbin/service ssh restart && cd /srv/username/project && git pull origin dev && git checkout dev \
&& /srv/username/project/script.py

为什么我现在必须在最新版本中配置用户?

【问题讨论】:

    标签: git docker ubuntu-20.04 nvidia-docker


    【解决方案1】:

    我没有找到错误发生的原因,但我找到了解决方法来删除它。 我没有克隆master然后拉分支,而是直接克隆我要使用的分支。

    克隆线现在是:

    RUN --mount=type=ssh git clone --single-branch -b dev git@git.mysite.com:user/project.git /srv/username/project
    

    注意使用-b dev--single-branch 只克隆指定的分支。

    我仍然不确定为什么在一种情况下会出现错误,而在另一种情况下不会。可能是因为 --mount=type=ssh 不能在最后一个 CMD 中使用,但在这两种情况下都应该失败。

    【讨论】:

      猜你喜欢
      • 2014-10-29
      • 1970-01-01
      • 2021-06-30
      • 1970-01-01
      • 1970-01-01
      • 2012-04-08
      • 1970-01-01
      • 1970-01-01
      • 2020-09-28
      相关资源
      最近更新 更多