質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
SourceTree

SourceTreeは、Gitのクライアントツール。視覚的に操作するGUI形式でGitの操作が容易になります。MacやWindowsなどのOSに依存しておらず、PC環境に合わせてインストールすることが可能です。

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

2回答

4699閲覧

Giteaにpushしたい

SystemAjisai

総合スコア171

SourceTree

SourceTreeは、Gitのクライアントツール。視覚的に操作するGUI形式でGitの操作が容易になります。MacやWindowsなどのOSに依存しておらず、PC環境に合わせてインストールすることが可能です。

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2020/01/09 01:18

前提・実現したいこと

ソースの管理をするのにBitbucketのプライベートリポジトリを作って作業していたのですが、会社から外部サービスの使用を禁止されたため社内にサーバーを建てようとしています。
今までリモートリポジトリの操作はBitbucketの画面、ローカルの操作はSourcetreeを使って行っていたので、次も似た環境にしようとしています。
そこでCentOS7サーバーにgiteaをdocker-composeを使って起動させたのですが、pushをするとエラーになってしまいます。
ログにlocalhostと出ているのでdockerかgitの設定が間違っているのだと思うのですが、さっぱりわかりません。
何かご存知の方がいらっしゃいましたら助けてください!

発生している問題・エラーメッセージ

giteaにpushできない。

ローカル(sourcetree)からpushした時のエラー

git -c diff.mnemonicprefix=false -c core.quotepath=false push -v origin master:master POST git-receive-pack (466 bytes) remote: * Checking 1 branches remote: Gitea: Internal Server Error remote: Unable to contact gitea: Post http://localhost:80/api/internal/hook/pre-receive/system/test: dial tcp 127.0.0.1:80: connect: connection refused Pushing to http://(サーバーIP)/system/test.git To http://(サーバーIP)/system/test.git ! [remote rejected] master -> master (pre-receive hook declined) error: failed to push some refs to 'http://(サーバーIP)/system/test.git'

Gitea画面から直接ファイル追加した時のエラー
(※一行で出て見づらかったので、それっぽい所で改行しています)

ファイル 'sample.txt' を作成または変更できませんでした: Unable to push back to repo from temporary repo: system/test (/data/gitea/tmp/local-repo/upload.git621725553) Error: exit status 1 - remote: * Checking 1 branches remote: Gitea: Internal Server Error remote: Unable to contact gitea: Post http://localhost:80/api/internal/hook/pre-receive/system/test: dial tcp 127.0.0.1:80: connect: connection refused To /data/git/repositories/system/test.git ! [remote rejected] 7ba47ff3dda2fda4fcf4df4b9510255f3777ea95 -> master (pre-receive hook declined) error: failed to push some refs to '/data/git/repositories/system/test.git'

該当のソースコード

docker-compose.yml

yml

1version: "2" 2networks: 3 gitea: 4 external: false 5services: 6 server: 7 image: gitea/gitea:latest 8 environment: 9 - TZ=Japan 10 - USER_UID=1000 11 - USER_GID=1000 12 - DB_TYPE=mysql 13 - DB_HOST=db:3306 14 restart: always 15 networks: 16 - gitea 17 volumes: 18 - /opt/gitea/data:/data 19 ports: 20 - "80:3000" 21 - "2222:2222" 22 depends_on: 23 - db 24 db: 25 image: mysql:5.7 26 restart: always 27 environment: 28 - TZ=Japan 29 - MYSQL_ROOT_PASSWORD=(パスワード) 30 - MYSQL_USER=gitea 31 - MYSQL_PASSWORD=(パスワード) 32 - MYSQL_DATABASE=gitea 33 networks: 34 - gitea 35 volumes: 36 - /opt/gitea/mysql:/var/lib/mysql 37 command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

試したこと

1. 空っぽのリポジトリを作ってローカルリポジトリをコミット
上記のエラーが出ました

2. ローカルでクローンできるか?
Gitea側でリポジトリ作成時にREADME.md等を作る設定にするできるmasterブランチやファイルがcloneできるか実験しました。

・httpでクローン
クローンすることができましたが、pushすると上記のエラーになります。

・SSHでクローン
PuTTYでSSHのキーを発行後、公開鍵をGiteaに登録、プライベート鍵をPageantに登録、
Sourcetreeのオプション→全般でSSHクライアントの設定でプライベート鍵を登録しましたが、
リポジトリタイプが「ソースパス/ソースURLとして正しくありません」と出てCloneできませんでした。

**3.Bitbucketから移行できるか **
試しにリポジトリを1つ移行しましたが、ブランチを含めて全て移行できました。
httpであればクローンもできますが、pushすると上記エラーになります。。。

4.Giteaの画面上からファイルを追加できるか
上記のようなエラーになりできませんでした。

補足情報(FW/ツールのバージョンなど)

[サーバー]
OS : CentOS7
Gitea : 1.11.0
docker : 19.03.5
docker-compose : 1.25.0

[クライアント]
OS : Windows10
Sourcetree: 3.1.2

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

コンテナとホスト側で Http のポートを合わせる必要があるようです。
以下のように gitea の Http のポートを設定することで解決はできないでしょうか?

yaml

1version: '3' 2service: 3 gitea: 4 image: gitea/gitea:latest 5 volumes: 6 - gitea_data:/data 7 enviroment: 8 - USER_UID=1000 9 - USER_GID=1000 10 - HTTP_PORT=80 11 ports: 12 - 80:80 13volumes: 14 gitea_data: 15

投稿2020/04/08 16:00

uttne

総合スコア17

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

SystemAjisai

2020/04/10 02:14

当時どんなことを試したかもう記憶が曖昧だったので、改めて環境を作って実験してみましたがダメでした・・・。 HTTP_PORT=80にして、portsを80:80に変えてみましたが、画面が表示できなくなってしまいました。 コンテナのログに ...s/graceful/server.go:79:ListenAndServe() [E] Unable to GetListener: listen tcp 0.0.0.0:80: bind: permission denied と出てるので、コンテナ内では権限的に80ポートが使えないんだと理解しました。 docker ps とやったら出てくる情報のPOTRSにも0.0.0.0:80->80/tcp以外に3000/tcpが出ている辺りもアヤシイ・・・。 と、言うあたりで私の知識では力尽きました。 情報くださったのに進展しなくてすみません。。。
uttne

2020/04/23 14:59

返信に気づいていませんでした。申し訳ありません。。。 確かに permission denied でダメでした。 実際にこの設定で動かしていなかったので気づきませんでした。すみません。 私も社内に gitea を立ち上げようとしており、今のところ nginx でリバースプロキシを立ててサブドメインを使い、運用ができないか確かめております。ドメイン名の解決には dnsmasq を使おうとしています。 その設定ファイルを勉強用のリポジトリに保管していますのでそちらを共有させていただきます。 汚いですが何かご参考になれば幸いに思います。 https://github.com/uttne/docker-learning
guest

0

自己解決

docker-composeでホスト側を80ポート、コンテナ側を3000ポートにしている部分を両方3000にしたらhttpでpushできるようになりました。

version: "2" networks: gitea: external: false services: server: image: gitea/gitea:latest : : ports: - "3000:3000" // アクセスする時ポートを付けたくないので80にしてたのを3000に変更 - "2222:22" depends_on: - db

このことから、Giteaのインストール時のホストやポートの指定がおかしいのでは?というところまでは絞り込んだんですが、思いつくことを全部試してもポートを3000にする以外解決しなかったので諦めました。
sshは試せてませんが、社内でしか使わないシステムのソースを社内の人が触るだけなのでhttpで良いことにします。。。

投稿2020/01/09 08:34

SystemAjisai

総合スコア171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問