Can';t从Docker上运行的Git回购中提取
我正在2台Mac上设置一个开发环境,第一个是在Docker容器中运行Gitea(参见下面的Docker compose)。我已经在每个mac上为主机名设置了一个Can';t从Docker上运行的Git回购中提取,git,macos,docker,gitea,Git,Macos,Docker,Gitea,我正在2台Mac上设置一个开发环境,第一个是在Docker容器中运行Gitea(参见下面的Docker compose)。我已经在每个mac上为主机名设置了一个/etc/hosts条目,并使用pfctl在第一个mac上打开了3333端口: lo0 inet协议tcp上的rdr传递日志(全部)从任意端口3333到任意端口->127.0.0.1端口3333 为了简单起见,我现在正在使用HTTP,我可以成功地从两台机器浏览到。这证明了Mac2可以通过http访问Mac1上的gitea(通过docker
/etc/hosts
条目,并使用pfctl
在第一个mac上打开了3333端口:
lo0 inet协议tcp上的rdr传递日志(全部)从任意端口3333到任意端口->127.0.0.1端口3333
为了简单起见,我现在正在使用HTTP,我可以成功地从两台机器浏览到。这证明了Mac2可以通过http访问Mac1上的gitea(通过docker)
我在每台mac电脑上都做了一个git遥控器:http://gitea:3333/MyOrg/MyProject.git
我可以通过git从第一个mac拉入和推入回购,但当我试图通过第二个mac拉入代码时,我会出现以下错误:
fatal: http://gitea:3333/MyOrg/MyProject.git/info/refs not valid: is this a git repository?
git remote使用两台机器都具有写访问权限的帐户进行连接
docker compose.yml。我试过docker compose版本2和3。我已经使用docker网络为gitea容器创建了一个静态IP。我尝试过添加主机名
和额外主机
的各种组合,但无法从repo中获取第二个mac
version: '2'
services:
mariadb:
image: mariadb
restart: always
environment:
- ...
volumes:
- ./mariadb/data:/var/lib/mysql
command:
'mysqld --innodb-flush-method=fsync'
networks:
giteanet:
ipv4_address: 172.0.0.11
gitea:
image: gitea/gitea
volumes:
- ./gitea/data:/data
ports:
- '3333:3000'
- '2222:22'
depends_on:
- mariadb
environment:
- DB_TYPE=mysql
- DB_HOST=mariadb:3306
...
- APP_NAME='Gitea'
- HOST=gitea
restart: always
networks:
giteanet:
ipv4_address: 172.0.0.10
hostname: gitea
networks:
giteanet:
driver: bridge
ipam:
config:
- subnet: 172.0.0.0/24
您是否尝试运行curlhttp://gitea:3333/MyOrg/MyProject.git/info/refs
在第二台Mac上?听起来像是来自第二台Mac的请求没有正确地路由到dockerI get a 200 docurl-Ihttp://gitea:3333/MyOrg/MyProject.git
但是curl-I上不允许使用405方法http://gitea:3333/MyOrg/MyProject.git/info/refs
-我想GET是不允许的curl-I
发送HEAD
,检查您的配置,查看HEAD
requests restrictions,这有助于我了解问题所在-从git提取的用户是项目中有信誉的有效用户,但仍然有必须更改密码设置。其中一个卷发显示重定向到…/changepassword页面。谢谢你的帮助!