修改完代码后,就不能用官方镜像了,所以需要自己重新打包镜像到本地库,开始吧。
修改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
这时候就可以通过管理后台更新主题文件了