@maorongrong
2017-03-21T01:41:39.000000Z
字数 3680
阅读 699
for-github
中文可以参看这里极易搭建的自助 Git 服务 Gogs
github项目,我们采用docker安装。
采用docker安装mysql
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
[amy@amy-Heizi ~]$ docker run -d --restart=always --name=gogs -p 10022:22 -p 10080:3000 -v `pwd`/gogs_repos:/data gogs/gogs
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 |
zam121118@163.com |
将自己本机~/.ssh/id_rsa.pub
复制添加到gogs,之后通过ssh pull/push
仓库免密码,But,通过HTTP复制克隆仍旧需要密码!!!
添加后会给出该仓库的推送方式
Create a new repository on the command line
touch README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin ssh://git@202.117.16.164:10022/zam121118/mbbode.git
git push -u origin master
Push an existing repository from the command line
git remote add origin ssh://git@202.117.16.164:10022/zam121118/mbbode.git
git push -u origin master
1 version: '2'
2
3 services:
4 mysql:
5 image: "mysql:latest"
6 volumes:
7 - /home/amy/mysql:/var/lib/mysql
8 ports:
9 - "3306:3306"
10 environment:
11 MYSQL_DATABASE: gogs
12 MYSQL_USER: zam121118
13 MYSQL_PASSWORD: 2011067825fly
14 MYSQL_ROOT_PASSWORD: root
15 command: "--character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci"
16 restart: always
17
18
19 gogs:
20 depends_on:
21 - mysql
22 image: "gogs/gogs:latest"
23 ports:
24 - "10022:22"
25 - "10080:3000"
26 volumes:
27 - /home/amy/gogs_repos:/data
28 restart: always
启动服务:
[amy@amy-Heizi ~]$ docker-compose -f docker-compose.yml up -d
[amy@amy-Heizi ~]$ dc -f docker-compose.yml up -d
Creating network "amy_default" with the default driver
Creating amy_mysql_1
Creating amy_gogs_1
[amy@amy-Heizi ~]$ dc ps
Name Command State Ports
-----------------------------------------------------------------------------------------
amy_gogs_1 /app/gogs/docker/sta Up 0.0.0.0:10022->22/tc
rt.sh ... p, 0.0.0.0:10080->30
00/tcp
amy_mysql_1 docker-entrypoint.sh Up 0.0.0.0:3306->3306/t
--cha ... cp
##stop containers.and remove services and networking
[amy@amy-Heizi ~]$ docker-compose down
注意: gogs
安装页面保留HTTP PORT
为3000,不要更改!
删除某数据库中的表,但是不删除该数据库:
SELECT CONCAT('drop table ',table_name,';') FROM information_schema.
TABLESWHERE table_schema='数据库名';