This commit is contained in:
Zheng Kai
2023-03-29 17:42:41 +08:00
parent 94b04a181a
commit 1b107ed035
36 changed files with 617 additions and 0 deletions

1
misc/docker/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
*.tar

28
misc/docker/Dockerfile Normal file
View File

@@ -0,0 +1,28 @@
# builder stage
FROM golang:latest as builder
ARG DOCKER_RUNNING=yes
ARG DEBIAN_FRONTEND=noninteractive
RUN apt update && apt install -yq protobuf-compiler tzdata ca-certificates
RUN go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.27.1
COPY . /project
RUN cd /project/proto && make
RUN /project/server/build/build-server.sh prod
# clean stage
FROM alpine
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
COPY --from=builder /usr/share/zoneinfo/Asia/Shanghai /usr/share/zoneinfo/Asia/
COPY --from=builder /project/server/dist/prod/orca-server-next /orca-server
RUN apk add --no-cache gzip brotli
ENV TZ=Asia/Shanghai
CMD ["/orca-server"]

25
misc/docker/Makefile Normal file
View File

@@ -0,0 +1,25 @@
SHELL:=/bin/bash
build: git
sudo docker build -t orca -f Dockerfile ../..
run: build
sudo docker run --env "ORCA_MYSQL=orca:orca@tcp(172.17.0.1:3306)/orca" \
--mount type=bind,source=/tmp/orca/tmp,target=/tmp \
--mount type=bind,source=/tmp/orca/server/dist/prod/log,target=/log \
orca
install: build
sudo docker save orca > docker-orca.tar
scp docker-orca.tar freya:/tmp
scp install.sh freya:/tmp
ssh freya "chmod +x /tmp/install.sh && /tmp/install.sh && rm /tmp/install.sh"
git:
../../server/build/git-hash.sh > ../../server/build/.git-hash
clean:
sudo docker stop orca || :
sudo docker rm orca || :
sudo docker rmi orca || :
sudo docker image prune --force

24
misc/docker/install.sh Normal file
View File

@@ -0,0 +1,24 @@
#!/bin/bash
TARGET="Freya"
if [ "$HOSTNAME" != "$TARGET" ]; then
>&2 echo only run in server "$TARGET"
exit 1
fi
sudo docker stop orca
sudo docker rm orca
sudo docker rmi orca
sudo cat /tmp/docker-orca.tar | sudo docker load
sudo docker run -d --name orca \
--env "TANK_MYSQL=orca:orca@tcp(172.17.0.1:3306)/orca" \
--env "STATIC_DIR=/tmp" \
--env "OUTPUT_PATH=/output" \
--mount type=bind,source=/www/orca/output,target=/output \
--mount type=bind,source=/www/orca/log,target=/log \
--mount type=bind,source=/www/orca/static,target=/tmp \
--restart always \
orca