forked from scjtqs/go-tg
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile.go-td
90 lines (75 loc) · 3.02 KB
/
Dockerfile.go-td
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
# golang编译环境
FROM golang:1.16-alpine3.13 as gobuilder
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories
ENV GOPATH="/go-tdlib:/usr/local/lib/:/usr/local/include/td"
ARG RELEASE_VERSION="1.0.0"
COPY --from=scjtqs/tdlib:1.7.0 /usr/local/include/td /usr/local/include/td
COPY --from=scjtqs/tdlib:1.7.0 /usr/local/lib/libtd* /usr/local/lib/
RUN apk update && apk add --no-cache git gcc libc-dev g++ make cmake openssl-dev zlib-dev ca-certificates tzdata \
alpine-sdk linux-headers gperf php php-ctype \
openssl-libs-static zlib-static \
zlib openssl \
&& mkdir /go-tdlib
#RUN git clone http://gitlab.scjtqs.com:8000/scjtqs/go-tg-tdlib.git --depth 1 /go-tdlib/src/
#RUN git clone https://github.com/scjtqs/go-tg.git --depth 1 /go-tdlib/src/
COPY . /go-tdlib/src/
WORKDIR /go-tdlib/src
## cgo的静态编译,-a代表重新编译,这样配置支持跨平台交叉编译
RUN go env -w GOPROXY=https://goproxy.cn,direct \
&& go mod tidy \
# && CGO_ENABLED=1 CGO_LDFLAGS="-static" go build -ldflags="-s -w" -installsuffix cgo -o go-tg -a -v \
&& CGO_ENABLED=1 CGO_LDFLAGS="-static" go build -ldflags="-s -w -X ""main.Version=${RELEASE_VERSION}""" -installsuffix cgo -o go-tg -v \
&& cp go-tg /go-tg
# && rm -rf /go-tdlib
##ENTRYPOINT ["/go-tdlib/go-tg"]
##CMD ["/go-tdlib/go-tg"]
#
FROM alpine:3.13
#COPY --from=scjtqs/tdlib:1.7.0 /usr/local/include/td /usr/local/include/td
#COPY --from=scjtqs/tdlib:1.7.0 /usr/local/lib/libtd* /usr/local/lib/
#COPY --from=gobuilder /go-tdlib /go-tdlib
COPY --from=gobuilder /go-tg /go-tg
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories
#RUN apk update && apk add --no-cache libc-dev openssl-dev zlib-dev && rm -rf /var/cache/apk/*
# 设置时区为上海
RUN apk update && apk add --no-cache tzdata \
&& cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo "Asia/Shanghai" > /etc/timezone \
&& apk del tzdata \
&& rm -rf /var/cache/apk/*
## IS_DOCKER true表示每次启动容器,都会动态生成config.json并覆盖现有数据
ENV IS_DOCKER="true"
ENV DEBUG="false"
ENV Phone=""
ENV Password=""
ENV AppID="1807909"
ENV AppHash="4b1594bcfab16b370686b14d85c60559"
## UseFileDatabase 启用消息db
ENV UseMessageDatabase="true"
## UseFileDatabase 启用文件db
ENV UseFileDatabase="true"
## UseChatInfoDatabase 使聊天数据信息存入db
ENV UseChatInfoDatabase="true"
## UseTestDataCenter 是否使用测试服
ENV UseTestDataCenter="false"
ENV DatabaseDirectory="./tdlib-db"
ENV FileDirectory="./tdlib-files"
ENV IgnoreFileNames="false"
## ProxyStatus 是否启用代理服务
ENV ProxyStatus="false"
ENV ProxyType="Socks5"
ENV ProxyAddr="127.0.0.1"
ENV ProxyPort="1234"
ENV ProxyUser=""
ENV ProxyPasswd=""
## WebHook 所有的推送配置,将json压缩成一行放进去
ENV WebHook=""
## WebApiStatus 是否开启api服务
ENV WebApiStatus="false"
ENV WebApiHost=""
ENV WebApiPort=""
ENV WebApiToken=""
WORKDIR /home
COPY run.sh /run.sh
RUN chmod +x /run.sh
CMD ["/run.sh"]