# Build Stage # 使用 golang:alpine 作为构建阶段的基础镜像 FROM golang:alpine AS builder # 添加 git,以便之后能从GitHub克隆项目 RUN apk --no-cache add git # 从 GitHub 克隆 go-proxy-bingai 项目到 /workspace/app 目录下 RUN git clone https://github.com/Harry-zklcdc/go-proxy-bingai.git /workspace/app # 设置工作目录为之前克隆的项目目录 WORKDIR /workspace/app # 编译 go 项目。-ldflags="-s -w" 是为了减少编译后的二进制大小 RUN go build -ldflags="-s -w" -tags netgo -trimpath -o go-proxy-bingai main.go # Runtime Stage # 使用轻量级的 alpine 镜像作为运行时的基础镜像 FROM alpine # 设置工作目录 WORKDIR /workspace/app # 从构建阶段复制编译后的二进制文件到运行时镜像中 COPY --from=builder /workspace/app/go-proxy-bingai . # 设置环境变量,此处为随机字符 ENV Go_Proxy_BingAI_USER_TOKEN_1="Y3VybCAnaHR0cHM6Ly93d3cuYmluZy5jb20vdHVyaW5nL2NhcHRjaGEvY2hhbGxlbmdlJyBcICAgLUggJ2F1dGhvcml0eTogd3d3LmJpbmcuY29tJyBcICAgLUggJ2FjY2VwdDogdGV4dC9odG1sLGFwcGxpY2F0aW9uL3hodG1sK3htbCxhcHBsaWNhdGlvbi94bWw7cT0wLjksaW1hZ2UvYXZpZixpbWFnZS93ZWJwLGltYWdlL2FwbmcsKi8qO3E9MC44LGFwcGxpY2F0aW9uL3NpZ25lZC1leGNoYW5nZTt2PWIzO3E9MC43JyBcICAgLUggJ2FjY2VwdC1sYW5ndWFnZTogemgtQ04semg7cT0wLjksZW47cT0wLjgsamE7cT0wLjcsemgtVFc7cT0wLjYsZnI7cT0wLjUsZXM7cT0wLjQsbmI7cT0wLjMnIFwgICAtSCAnY2FjaGUtY29udHJvbDogbm8tY2FjaGUnIFwgICAtSCAnY29va2llOiBfRURHRV9WPTE7IE1VSUQ9MTI0NUY4QUJBNUFENjM4NjI3RURFQkYxQTQ3RjYyRDU7IE1VSURCPTEyNDVGOEFCQTVBRDYzODYyN0VERUJGMUE0N0Y2MkQ1OyBTUkNIRD1BRj1OT0ZPUk07IFNSQ0hVSUQ9Vj0yJkdVSUQ9Q0E4OTc2OTNEREU5NEVCOTk5MUYxNDMzM0ZEMUUwNEImZG1uY2hnPTE7IF9VUj1RUz0wJlRRUz0wOyBBTk9OPUE9MDA0M0M2NTkwRUE4MDhFRDZFMzk1MDU5RkZGRkZGRkYmRT0xYzlhJlc9MTsgTkFQPVY9MS45JkU9MWM0MCZDPWlwRTRNWUN5eFVKcUt3Qk9TRDkzRUE1bmRyanp5NEdxMEZYZDVCZzFNVjlDNVNnVkJZc2twQSZXPTE7IFBQTFN0YXRlPTE7IF9IUFZOPUNTPWV5SlFiaUk2ZXlKRGJpSTZNaXdpVTNRaU9qQXNJbEZ6SWpvd0xDSlFjbTlrSWpvaVVDSjlMQ0pUWXlJNmV5SkRiaUk2TWl3aVUzUWlPakFzSWxGeklqb3dMQ0pRY205a0lqb2lTQ0o5TENKUmVpSTZleUpEYmlJNk1pd2lVM1FpT2pBc0lsRnpJam93TENKUWNtOWtJam9pVkNKOUxDSkJjQ0k2ZEhKMVpTd2lUWFYwWlNJNmRISjFaU3dpVEdGa0lqb2lNakF5TXkwd09DMHhNMVF3TURvd01Eb3dNRm9pTENKSmIzUmtJam93TENKSGQySWlPakFzSWtSbWRDSTZiblZzYkN3aVRYWnpJam93TENKR2JIUWlPakFzSWtsdGNDSTZOWDA9OyBVU1JMT0M9SFM9MSZFTE9DPUxBVD0yMi41MDc0MjM0MDA4Nzg5MDZ8TE9OPTExMy45MjkzNDQxNzcyNDYxfE49JUU1JThEJTk3JUU1JUIxJUIxJUU1JThDJUJBJUVGJUJDJThDJUU1JUI5JUJGJUU0JUI4JTlDJUU3JTlDJTgxfEVMVD0wfDsgU25yT3ZyPVg9cmViYXRlc29uOyBLaWV2UlBTU2VjQXV0aD1GQUJTQkJSYVRPSklMdEZzTWtwTFZXU0c2QU42Qy9zdlJ3Tm1BQUFFZ0FBQUNQVEpvUHlURHZlWEVBUmdxOGJLZkZaY0FrdWlseWxNMElGdnVpL1Z2aFduNy91WkVCQUt4RzM1d3hTZkZ6aFF3VGFKSkNKUThQUFlJNWR5d1FFd2RJR1k2RmNONFUvZUxrWW0zQTl3ZkRBZHMwRGwyZHRwTm5NbEZNWXErQWxxSHUzVndMZWU2dlF1NG5nSHhrTEJxQndidVN1MXZJV25FNUUwZmZGRWt1bXJDY2Vub2g5Q2hCdUZ5b0krNXFuRndsQXZzYzlOc3FyMEZqMURtdlVudk9jTG4zNGluVDhmdkdRelQ3WWdXSFNTcUtBd0VHcGlWSjhrdm9vUU1henBIR085ZTVBUkpPUmpabDlENjBlSnU3WHB1VEVPRm1FWm9IbnplWURxVS9aQ1d0SzNNYjRLQTA5Y0M4dWJGTzBOYjIzL0MvaU0yZHA4ZTd6UWNvSW03bXdWR0hYZHlLUUpOSnBrdEg2RUxsREFkZTg0RkQwZW0rNWptRVBZMUhEWEI1UE5vV1dnQ0UxV1BXYzBsOXh4ZGFDb2M3ZnV2RXlaeEs2TDVscHQ4NGhqKzh0VXRteVg5ak9mb3V4a1UyVE5VRE1LMzR0K20zeWJEMUhoTGlvaEZEcVh1M0tUMmd0QWQxS29JUE5XVmVsU0F5V2dTZlltNmhLNjJBWGwxbll3SWpZVFNudFlkZDVsZ016L1FRcjZ0RGs0SE0xTlEzSXRPYzY3REI2aFBsWEEvNmVRZVBZZWQvWWdHR1RUaUttMHYzeDFkRVFWOVpvYkFmZTliRjlxZTIwVWtCMzVlWGZTQ3UraFptSW9xSEJOakMyYlRSQnZxSGhDSWxkaW9uUnZ5L3lDd0tDdjZUSXJmUE84ZUgyM2lnYTFmTnlUQzM2M2d3cDRZcldOZ0lnb0pUcDR4bzNJWENrRjM3VlRDRVdrcG9Wc3QyMTl3VlNBZ0lwS0lnSVJlQmh0UkFabEZHWXVvbk5Edjd1T05HYzRBYVFseXpQM001U2E5cDFwbzIvMjJvS3laT2VDV2pXN25SUkZsUE1NWXRnck81c3o4ak8wS0dCVnhHUFlTYWtkMFpXdGZHZGg5ZzJmcTFrL29vOUpMc2prdFdqZHZMWlRuVy9iVWE5djFWK0o4Tkp4alBYVzZ2ZFRXdXJRRlZWWWcyNmYzaXNsZjNUWDJjdTdkdFROVTM5NFBlN28xYldUa3NJQUxkYTB2aW5HTy9oV0Q0bkIrV2ZMdVBXL3JuQncxK1ArbXFsMTVXQldTblprcll2dkJOREdHZ0tEdkxFMzloYzQrcWJOanEwM3ZBQnMvdmZYNzI4aXRvblVJUi9rWHJ6UTFjaWl3SEdZanJzNy9VaWhrY29kcUFieFVuNmdRL2gvdUNldGo4eGhQbHgwdGRtMUo4d0x0ZS9aUmRrdnArbjd0a3V2bHJRMmxJOVpHeERPRmRadjBaa29UWjZySzg4NUR6SDU4dEJXSWNaM2FvVmpVci96d0srVVNJbWhiWll3eG5Ddi85bllRU2VhbVlObS9Nemx2QWVPcXRoNVQ4WU5Bd050REJ5YTdsVXlkSmtKNUhtSEl0SEx1aXZTTEw5bk5EZ0x5eE9YOEVWVDh4SmxQQ0JPSnpvdmFWRkFSQTdjUkIwSkdJcVVkVzZOeXhoY0lkOHVVeTl2b3ZUSEtNRGJMZDAvRWhIbVJKK29yWWk1Y1UvYy9qNko5djdtcVFYOVJIaU01aThLYUtMVjRCQUgzSlU4Q3dUS3RJRnA5bXdYTjM0ZWJ6LzE3VUMreDhJVWZLVldwcjcxVkJ1MEowemNhWFBDWjU0SmlKNE40dzhwYkI2eHBOL2p1VGloQjBjblVQL1hFMjhvMUJRQTYxaktCSzNRVHgzSmJwVDNZT1pmaGkxWmlzMD07IF9VPTFvNFNOYXlyX2EyX1RUNV9Pc1M5LVRrbVNPbFFSREJ0eHNwb2dLZjJaUDdyWTR6Zkt5VHZVdllSYXRXLXk4SDVjdHk0dnBXeVZmSVh3X0tpR0RGS08zQVltT2wydDdFNk80eTdOd05ncFJlakhMVm94SmRGdGU0R0Q3UGxMc0dHRzVqcENsbThwU0ZpdHltUk1DTnR6WE9JNlFyQWdob2JJVEpiMVlVRFdXMThBcE9vRG1WbTY5NXNrTmtqNlRXVHFrYm5ZQUtuWFE0LTl5dzk4NEFGWnFROyBTUkNIVVNSPURPQj0yMDIzMDcyNiZUPTE2OTIyMDExOTYwMDAmVFBDPTE2OTIyMDEyMDMwMDAmUE9FWD1XOyBXTElEPXBHWThIZ1dDdTRwNVhZQ09rMm9hMCtEQmRmdGtNVWZtTkluOFh0U2pTVEtzZ3YvSWw3R1VsWXMwSnBqZi9FMTJqWk1nVjd4NDREeTNmWE9nampVb0p4N1kvQ2xMckxoc2syMFRIa3NKSm9JPTsgX1J3QmY9aWx0PTEmaWhwZD0xJmlzcGQ9MCZyYz0zMzAzJnJiPTMzMDMmZ2I9MCZyZz0wJnBjPTMzMDMmbXR1PTAmcmJiPTAuMCZnPTAmY2lkPSZjbG89MCZ2PTQmbD0yMDIzLTA4LTE2VDA3OjAwOjAwLjAwMDAwMDBaJmxmdD0wMDAxLTAxLTAxVDAwOjAwOjAwLjAwMDAwMDAmYW9mPTAmbz0wJnA9QklOR1RSSUFMNVRPMjUwUDIwMTgwOCZjPU1ZMDFaOSZ0PTY5OTcmcz0yMDIzLTAyLTA5VDA1OjIzOjIxLjY3MzMzMjIrMDA6MDAmdHM9MjAyMy0wOC0xNlQxNjowNzozMy4wNzQ4NzY4KzAwOjAwJnJ3cmVkPTAmd2xzPTImbGthPTAmbGt0PTAmVEg9JmRjaT0wJm10YT0wJndsYj0wJnI9MSZlPUlTeHh5ZEYxNzYxR2pKQ05mNlo2R0s3bWQ5bm0zTFJwUWZyajJwMkozSlo1UU1jWWE5U29vN3lFbGdhSGh6STh5Vld4NkVaVF9TNXhBU0tOX3dRTTNWcERmOVpfTjM1RFBVT29NMXk4OVdrJkE9MDA0M0M2NTkwRUE4MDhFRDZFMzk1MDU5RkZGRkZGRkY7IFNVSUQ9QTsgX0VER0VfUz1TSUQ9MDcyQzgxRjI2N0Y3NjA2OTFEMUE5MjgzNjY5RTYxNjU7IFdMUz1DPTlkZjNmOWQ4NTE4ZmFlMTkmTj13ZW47IF9TUz1TSUQ9MDcyQzgxRjI2N0Y3NjA2OTFEMUE5MjgzNjY5RTYxNjU7IFNSQ0hIUEdVU1I9U1JDSExBTkc9emgtSGFucyZCUlc9WFcmQlJIPU0mQ1c9MTcwNyZDSD04MzQmU0NXPTE2OTEmU0NIPTM5OTYmRFBSPTEuNSZVVEM9NDgwJkRNPTAmUFY9MTUuMC4wJlBSVkNXPTE3MDcmUFJWQ0g9ODM1JldUUz02MzgyNzc5Nzk5NiZJRz0zOTcxQkREMzdCREI0QUNEQTJBREY2Nzg4NUYzOEI4MCZIVj0xNjkyMjAxNDUyJmNkeHRvbmU9UHJlY2lzZSZjZHh0b25lb3B0cz1oM3ByZWNpc2UsY2xnYWxpbGVvLGdlbmNvbnRlbnR2MyxwcG9mcDg7IGNjdD15SkFtTlVTdHF2NUhjWlprUnIzRm9YSWhOek9hNUtYWkVmem9zU3MxNTkwNjYwbzRhbEhFNXNCZ2Q5ZVA1MWQycC1sYVJCWTVaYWdpMG13SkoyOGlqdycgXCAgIC1IICdkbnQ6IDEnIFwgICAtSCAncHJhZ21hOiBuby1jYWNoZScgXCAgIC1IICdzZWMtY2gtdWE6ICJDaHJvbWl1bSI7dj0iMTE2IiwgIk5vdClBO0JyYW5kIjt2PSIyNCIsICJHb29nbGUgQ2hyb21lIjt2PSIxMTYiJyBcICAgLUggJ3NlYy1jaC11YS1hcmNoOiAieDg2IicgXCAgIC1IICdzZWMtY2gtdWEtYml0bmVzczogIjY0IicgXCAgIC1IICdzZWMtY2gtdWEtZnVsbC12ZXJzaW9uOiAiMTE2LjAuNTg0NS45NiInIFwgICAtSCAnc2VjLWNoLXVhLWZ1bGwtdmVyc2lvbi1saXN0OiAiQ2hyb21pdW0iO3Y9IjExNi4wLjU4NDUuOTYiLCAiTm90KUE7QnJhbmQiO3Y9IjI0LjAuMC4wIiwgIkdvb2dsZSBDaHJvbWUiO3Y9IjExNi4wLjU4NDUuOTYiJyBcICAgLUggJ3NlYy1jaC11YS1tb2JpbGU6ID8wJyBcICAgLUggJ3NlYy1jaC11YS1tb2RlbDogIiInIFwgICAtSCAnc2VjLWNoLXVhLXBsYXRmb3JtOiAiV2luZG93cyInIFwgICAtSCAnc2VjLWNoLXVhLXBsYXRmb3JtLXZlcnNpb246ICIxNS4wLjAiJyBcICAgLUggJ3NlYy1mZXRjaC1kZXN0OiBkb2N1bWVudCcgXCAgIC1IICdzZWMtZmV0Y2gtbW9kZTogbmF2aWdhdGUnIFwgICAtSCAnc2VjLWZldGNoLXNpdGU6IGNyb3NzLXNpdGUnIFwgICAtSCAnc2VjLWZldGNoLXVzZXI6ID8xJyBcICAgLUggJ3VwZ3JhZGUtaW5zZWN1cmUtcmVxdWVzdHM6IDEnIFwgICAtSCAndXNlci1hZ2VudDogTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzExNi4wLjAuMCBTYWZhcmkvNTM3LjM2JyBcICAgLS1jb21wcmVzc2Vk" # 暴露8080端口 EXPOSE 8080 # 容器启动时运行的命令 CMD ["/workspace/app/go-proxy-bingai"]