Docker方式搭建Gogs环境

Docker方式搭建Gogs环境

一、 镜像准备:

因为从官网的dockerhub仓库拉取镜像实在太慢,换了镜像源,操作如下:

修改/usr/lib/systemd/system/docker.service文件,在ExecStart中添加:

–registry-mirror=https://docker.mirrors.ustc.edu.cn 启动项。

添加后完整文件如下。

[Unit]
Description=Docker Application Container Engine
Documentation=http://docs.docker.com
After=network.target
Wants=docker-storage-setup.service
Requires=docker-cleanup.timer

[Service]
Type=notify
NotifyAccess=all
EnvironmentFile=-/etc/sysconfig/docker
EnvironmentFile=-/etc/sysconfig/docker-storage
EnvironmentFile=-/etc/sysconfig/docker-network
Environment=GOTRACEBACK=crash
Environment=DOCKER_HTTP_HOST_COMPAT=1
Environment=PATH=/usr/libexec/docker:/usr/bin:/usr/sbin
ExecStart=/usr/bin/dockerd-current \
          --registry-mirror=https://docker.mirrors.ustc.edu.cn \
          --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current \
          --default-runtime=docker-runc \
          --exec-opt native.cgroupdriver=systemd \
          --userland-proxy-path=/usr/libexec/docker/docker-proxy-current \
          $OPTIONS \
          $DOCKER_STORAGE_OPTIONS \
          $DOCKER_NETWORK_OPTIONS \
          $ADD_REGISTRY \
          $BLOCK_REGISTRY \
          $INSECURE_REGISTRY
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=1048576
LimitNPROC=1048576
LimitCORE=infinity
TimeoutStartSec=0
Restart=on-abnormal
MountFlags=slave

[Install]
WantedBy=multi-user.target

然后重启docker服务:

systemctl daemon-reload

systemctl restart docker.service

1. docker pull gogs ## 拉取Gogs镜像

2. docker pull mysql ## 拉取MySQL镜像


以上操作完成后使用docker images查看镜像,如下:

[root@zxg ~]$ docker images
docker.io/mysql       latest              d5127813070b        2 days ago          407.1 MB
docker.io/gogs/gogs   latest              4f7cef3b4ef6        6 days ago          126.8 MB
[root@zxg ~]$ 

3. 为方便使用,给以上两个镜像打上自己的标签

docker tag docker.io/mysql:latest      mysql:zxg
docker tag docker.io/gogs/gogs:latest  gogs:zxg

二、基于mysql镜像,制作符合要求的mysql镜像

由于拉取的mysql镜像,其编码默认是latin,而gogs要求是utf8,因此,需要修改编码,制作新镜像,步骤如下:

1. 得到mysql的配置文件

docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql:zxg  ## 运行出一个MySQL容器

docker cp MySQL容器ID:/etc/mysql/mysql.conf.d/mysqld.cnf .   ## 拷贝mysql的配置文件到当前目录

2. 修改MySQL配置文件

在上一步得到的mysqld.cnf文件中,增加character-set-server = utf8, 大致如下
[mysqld]
pid-file    = /var/run/mysqld/mysqld.pid
socket      = /var/run/mysqld/mysqld.sock
datadir     = /var/lib/mysql
character-set-server = utf8
init_connect = 'SET NAMES utf8'

3. 编写Dockerfile持久化MySQL配置文件

FROM mysql:zxg
ADD mysqld.cnf /etc/mysql/mysql.conf.d/

4. 根据dockerfile编译新镜像

docker build -t mysqlutf8:zxg --no-cache=true -f Dockerfile .

三、运行gogs容器,mysql容器

1. 运行utf8编码的MySQL容器

docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -v /opt/mysql:/var/lib/mysql -v /etc/localtime:/etc/localtime mysqlutf8:zxg

2. 运行gogs容器

docker run -d -p 10080:3000 10022:22 -v /opt/gogs:/data -v /etc/localtime:/etc/localtime gogs:zxg

四、新建gogs数据库

进入mysql容器新建gogs数据库

docker exec -it mysqlutf8容器ID bash

[root@zxg opt]$ docker exec -it 1ec bash
root@1ec26f5dc361:/# mysql -h 127.0.0.1 -uroot -proot              
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 36
Server version: 5.7.18 MySQL Community Server (GPL)

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database gogs default character set utf8 collate utf8_general_ci;

五、浏览器访问http://ip:10080

1. 配置mysql

image

2. 配置gogs应用

image

3.可选配置

image

猜你喜欢

转载自blog.csdn.net/zhangxiangui40542/article/details/70597575
今日推荐