注册runner
后面运行docker环境需要注册这种runner
gitlab-runner register \
--non-interactive \
--executor "docker" \
--docker-image "golang:alpine" \
--url "http://192.168.8.10/" \
--registration-token "bTYW9wdU_M9nv1Kx_4Vi" \
--description "node-runner" \
--tag-list "docker,golang" \
--run-untagged="true" \
--locked="false" \
--access-level="not_protected"
修改runner的配置,将宿主机的docker命令映射进去
编辑文件 /etc/gitlab-runner/config.toml,修改为
volumes = ["/cache","/usr/bin/docker:/usr/bin/docker","/var/run/docker.sock:/var/run/docker.sock"]

stages:
- deploy
deploy:
stage: deploy
image: docker
tags:
- golang
only:
- main
script:
- docker build -t goimage .
- if [ $(docker ps -aq --filter name=goimage) ]; then docker rm -f goimage;fi
- docker run -d -p 39000:6543 --name goimage goimage

FROM golang:latest as builder
WORKDIR /app
COPY . .
RUN go env -w GOPROXY=https://goproxy.cn,direct
RUN go get
RUN go build -o main
RUN chmod +x ./main
ENTRYPOINT ["/app/main"]
