[关闭]
@maorongrong 2017-03-21T01:41:39.000000Z 字数 3680 阅读 699

创建自己的代码仓库gogs

for-github


gogs

中文可以参看这里极易搭建的自助 Git 服务 Gogs
github项目,我们采用docker安装。

prequest必须先有数据库

采用docker安装mysql

  1. docker run --restart=always -p 3306:3306 --name=mysql -v `pwd`/mysql:/var/lib/mysql -e MYSQL_DATABASE=gogs -e MYSQL_USER=zam121118 -e MYSQL_PASSWORD=2011067825fly -e MYSQL_ROOT_PASSWORD=root -d mysql:latest --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci

环境变量:

MYSQL_DATABASE 容器创建的时候就按照指定数据库名创建该数据库
MYSQL_USER 为新创建的数据库创建用户,给予superuser权限
MYSQL_PASSWORD 为用户创建指定的密码
MYSQL_ROOT_PASSWORD 为mysql创建root密码

mysql-server启动参数:

--character-set-server=utf8mb4 为mysql-server设置字符编码utf-8
--collation-server=utf8mb4_general_ci 为INNODE engine创建制表编码utf8mb4_general_ci(gogs对mysql数据库的要求)

该数据库的访问this-host-ip:3306

安装gogs

  1. [amy@amy-Heizi ~]$ docker run -d --restart=always --name=gogs -p 10022:22 -p 10080:3000 -v `pwd`/gogs_repos:/data gogs/gogs
  2. 13b8062d3c64e650a648265be52c1109c4d39b56bbec476cffd4489f63cf177a

访问安装页面http://202.117.16.164:10080, 填入下列参数,安装即可。

USER root
root root
DATABASE gogs
URL 202.117.16.164:3306
Settings is default value
Repository Root Path true /home/git/gogs-repositories
Run User true git
Domain no your physical machine ip
SSH Port no the host post exposed to Docker container post:22,like 10022
HTTP Port no must be 3000 although you have change exposed port from container to 10080,you should still use 3000
Application URL no combination of Domain and exposed HTTP Port

注意: `HTTP PORT必须写3000,就算做了主机端口映射,也必须写3000,看gogs github Readme就知道了:

  • Domain: fill in with Docker container IP (e.g. 192.168.99.100). But if you want to access your Gogs instance from a different physical machine, please fill in with the hostname or IP address of the Docker host machine.
  • SSH Port: Use the exposed port from Docker container. For example, your SSH server listens on 22 inside Docker, but you expose it by 10022:22, then use 10022 for this value. Builtin SSH server is not recommended inside Docker Container
  • HTTP Port: Use port you want Gogs to listen on inside Docker container. For example, your Gogs listens on 3000 inside Docker, and you expose it by 10080:3000, but you still use 3000 for this value.
  • Application URL: Use combination of Domain and exposed HTTP Port values (e.g. http://192.168.99.100:10080/).
user zam121118
password 2011067825fly
Email zam121118@163.com

安装后设置SSH Key

将自己本机~/.ssh/id_rsa.pub 复制添加到gogs,之后通过ssh pull/push 仓库免密码,But,通过HTTP复制克隆仍旧需要密码!!!

添加后会给出该仓库的推送方式

Create a new repository on the command line

  1. touch README.md
  2. git init
  3. git add README.md
  4. git commit -m "first commit"
  5. git remote add origin ssh://git@202.117.16.164:10022/zam121118/mbbode.git
  6. git push -u origin master

Push an existing repository from the command line

  1. git remote add origin ssh://git@202.117.16.164:10022/zam121118/mbbode.git
  2. git push -u origin master

install gogs with docker-compose

  1. 1 version: '2'
  2. 2
  3. 3 services:
  4. 4 mysql:
  5. 5 image: "mysql:latest"
  6. 6 volumes:
  7. 7 - /home/amy/mysql:/var/lib/mysql
  8. 8 ports:
  9. 9 - "3306:3306"
  10. 10 environment:
  11. 11 MYSQL_DATABASE: gogs
  12. 12 MYSQL_USER: zam121118
  13. 13 MYSQL_PASSWORD: 2011067825fly
  14. 14 MYSQL_ROOT_PASSWORD: root
  15. 15 command: "--character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci"
  16. 16 restart: always
  17. 17
  18. 18
  19. 19 gogs:
  20. 20 depends_on:
  21. 21 - mysql
  22. 22 image: "gogs/gogs:latest"
  23. 23 ports:
  24. 24 - "10022:22"
  25. 25 - "10080:3000"
  26. 26 volumes:
  27. 27 - /home/amy/gogs_repos:/data
  28. 28 restart: always

启动服务:

  1. [amy@amy-Heizi ~]$ docker-compose -f docker-compose.yml up -d
  2. [amy@amy-Heizi ~]$ dc -f docker-compose.yml up -d
  3. Creating network "amy_default" with the default driver
  4. Creating amy_mysql_1
  5. Creating amy_gogs_1
  6. [amy@amy-Heizi ~]$ dc ps
  7. Name Command State Ports
  8. -----------------------------------------------------------------------------------------
  9. amy_gogs_1 /app/gogs/docker/sta Up 0.0.0.0:10022->22/tc
  10. rt.sh ... p, 0.0.0.0:10080->30
  11. 00/tcp
  12. amy_mysql_1 docker-entrypoint.sh Up 0.0.0.0:3306->3306/t
  13. --cha ... cp
  14. ##stop containers.and remove services and networking
  15. [amy@amy-Heizi ~]$ docker-compose down

注意: gogs安装页面保留HTTP PORT 为3000,不要更改!

小技巧

删除某数据库中的表,但是不删除该数据库:
SELECT CONCAT('drop table ',table_name,';') FROM information_schema.TABLESWHERE table_schema='数据库名';

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注