Docker命令RUN无法使用git init --bare吗?

问题描述 投票:1回答:1

我有一个Dockerfile,为GIT服务器创建一个图像。

在这个Dockerfile中有三行对我很重要:

RUN mkdir -p /root/repository
WORKDIR /root/repository
RUN git init --bare

前两行正常工作,但最后一行似乎无法正常工作。它没有提供任何错误输出,但它不会创建repository文件夹中的所有文件/目录。该文件夹为空,但应包含这些文件/文件夹:

-rw-r--r--. 1 root root  23 Feb 27 14:18 HEAD
drwxr-xr-x. 2 root root   6 Feb 27 14:18 branches/
-rw-r--r--. 1 root root  66 Feb 27 14:18 config
-rw-r--r--. 1 root root  73 Feb 27 14:18 description
drwxr-xr-x. 2 root root 242 Feb 27 14:18 hooks/
drwxr-xr-x. 2 root root  21 Feb 27 14:18 info/
drwxr-xr-x. 4 root root  30 Feb 27 14:18 objects/
drwxr-xr-x. 4 root root  31 Feb 27 14:18 refs/

当我通过docker exec访问docker容器,并手动执行git init --bare时 - 一切似乎都很好......

执行docker exec -it CONTAINER_ID git init --bare工作完美...

我究竟做错了什么?

git docker docker-compose dockerfile
1个回答
1
投票

它必须是Dockerfile中的环境设置或您使用的基本映像。以下最小示例有效:

FROM alpine:latest
RUN apk update && apk add git

RUN mkdir -p /root/repository
WORKDIR /root/repository
RUN git init --bare

例如,您可以验证未在基本映像中设置$ GIT_DIR,或者验证docker build的构建参数。如果设置,git init --bare将在$ GIT_DIR而不是/root/repository中初始化回购

© www.soinside.com 2019 - 2024. All rights reserved.