我有一个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
完美无缺...
我做错了什么?
答案 0 :(得分: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
答案 1 :(得分:0)
我有同样的问题。
发现我继承的Dockerfile将目录声明为volume,这似乎不起作用。 ;)
原始Dockerfile
/opt/something/my_stuff
我原来的Dockerfile
{{1}}
只需将{{1}}更改为{{1}}