修改完代码后,就不能用官方镜像了,所以需要自己重新打包镜像到本地库,开始吧。

修改Dockerfile

Dockerfile在scripts/Dockerfile,需要加一下GOPROXY配置,否则go mod download会很慢

WORKDIR /go/src/github.com/go-sonic/sonic

ARG BUILD_COMMIT
ARG BUILD_TIME
ARG SONIC_VERSION
ENV GOPROXY=https://goproxy.cn,direct  # 添加一行

修改完后push一下到远程仓库里

Docker打包镜像

现在把源码下载到服务器上,我这里用的是第一篇docked-compose.yaml的地址/data/gosonic,你可以根据自己实际情况替换

ubuntu@VM-8-14-ubuntu:/$ cd data/gosonic
ubuntu@VM-8-14-ubuntu:/data/gosonic$ git clone https://github.com/go-sonic/sonic.git  ##这里要换成自己修改的代码的仓库!!!
Cloning into 'sonic'...
remote: Enumerating objects: 1503, done.
remote: Counting objects: 100% (1503/1503), done.
remote: Compressing objects: 100% (645/645), done.
remote: Total 1503 (delta 865), reused 1359 (delta 827), pack-reused 0
Receiving objects: 100% (1503/1503), 6.24 MiB | 580.00 KiB/s, done.
Resolving deltas: 100% (865/865), done.
ubuntu@VM-8-14-ubuntu:/data/gosonic$ ls
conf  deply.sh  docker-compose.yaml  logs  resources  sonic  upload

然后执行docker build

cd sonic &&  docker build -t gosonic:latest  -f ./scripts/Dockerfile .

这里已经打包了自己的镜像,镜像名是gosonic:latest

修改docker-compose.yaml

version: "3"

services:
  gosonic:
    image: gosonic:latest ##用新的镜像
    container_name: gosonic
    restart: always
    environment:
      TZ: Asia/Shanghai
    hostname: gosonic
    networks:
      - my-net
    ports:
      - 8080:8080
    volumes:
      - ./:/sonic
networks:
  my-net:
    external: true

然后执行 docker-compose up -d 就可以了

一键脚本

如果经常修改源码,每次都手动输入git pull/docker build的会很繁琐,所以可以写给脚本就不用这么麻烦了,vim deply.sh

#!/bin/bash
set -e
if [ ! -d "sonic" ]; then
  echo "项目不存在,开始克隆项目"
  git clonehttps://github.com/go-sonic/sonic.git
else
  echo "项目存在,开始更新项目"
  git -C ./sonic pull --force
fi
#打包镜像,命名为gosonic:1.0
echo "开始打包镜像"
cd sonic &&  docker build -t gosonic:latest  -f ./scripts/Dockerfile .
## 运行docker-compose
echo "开始运行docker-compose"
cd ../ && docker-compose up -d

执行 chomd +x deply.sh,这样以后更新了代码,就可以直接运行./deply.sh了

END

这时候就可以通过管理后台更新主题文件了