diff --git a/.gitignore b/.gitignore index d6d529d..0d81d01 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,7 @@ csvdata *.out imgui +logs *.log doc/draw.md diff --git a/DesignerConfigs b/DesignerConfigs index 5048930..4011876 160000 --- a/DesignerConfigs +++ b/DesignerConfigs @@ -1 +1 @@ -Subproject commit 5048930a93ad2f32939c0bfd14d83a87ffd816bb +Subproject commit 4011876adebf1d046b150ec77e1714d25aa7cb35 diff --git a/Makefile b/Makefile index 9974b77..2362cc5 100644 --- a/Makefile +++ b/Makefile @@ -52,5 +52,23 @@ gen:proto excel pull: git submodule update --remote +docker-build: + # docker build -t my-tab -f /abc/defg/my-dockerfile /context-dir + docker build -t pro2d -f docker/Dockerfile ./ --force-rm + +docker-http: + docker rm -f http-pro2d + docker run --restart=always -d -p 8080:8080 --name http-pro2d pro2d ./http + +docker-game: + docker rm -f game-pro2d + docker run --restart=always -d -p 8850:8850 --name game-pro2d pro2d ./game + +save: docker-build + docker save pro2d > docker/pro2d.tar + scp docker/* zhaolu@192.168.0.100:/Users/zhaolu/Documents/pro2d #passwd: zhaolu + + rm -f docker/pro2d.tar + ssh zhaolu@192.168.0.100 "/Users/zhaolu/Documents/pro2d/restart.sh" .PHONY: all build protos test cert plugin doc proto pull \ No newline at end of file diff --git a/common/conf.go b/common/conf.go index e674b81..9ec5b1e 100644 --- a/common/conf.go +++ b/common/conf.go @@ -117,7 +117,7 @@ func init() { return } //初始化日志 - err = logger.SetLogger(string(c), strings.ToLower(GlobalConf.GameConf.Name)) + err = logger.SetLogger(string(c), fmt.Sprintf("logs/%s", strings.ToLower(GlobalConf.GameConf.Name))) if err != nil { fmt.Errorf("log conf %v", err) return diff --git a/conf/conf.yaml b/conf/conf.yaml index a00e300..4f71973 100644 --- a/conf/conf.yaml +++ b/conf/conf.yaml @@ -4,10 +4,10 @@ workerid: 1 datacenterid: 1 mongo: &default-mongo - host: "192.168.0.206" + host: "192.168.0.100" port: 27017 - user: "" - password: "" + user: "root" + password: "root" timeout: 2 maxnum: 50 diff --git a/docker/.dockerignore b/docker/.dockerignore new file mode 100644 index 0000000..d56847c --- /dev/null +++ b/docker/.dockerignore @@ -0,0 +1,15 @@ +.idea +bin +csvdata +DesignerConfigs +doc +docker +imgui +luaban_examples +protos +tools +vendor +logs +*.log +*.md +*.meta diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 0000000..28c5c0c --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,33 @@ +FROM golang:1.17 as Go117Build +WORKDIR /usr/src/app +#COPY go.mod go.sum ./ +#RUN go mod download && go mod verify + +COPY . . +RUN go build -tags netgo -o /usr/local/bin/http cmd/httpserver/main.go && go build -tags netgo -o /usr/local/bin/game cmd/gameserver/*.go + +FROM alpine:3.7 as pro2d +# 配置国内源 +RUN echo "http://mirrors.aliyun.com/alpine/v3.7/main/" > /etc/apk/repositories && \ + echo "hosts: files dns" > /etc/nsswitch.conf #dns +RUN apk update && \ + apk add ca-certificates && \ + apk add libc6-compat + +WORKDIR /data + +COPY --from=0 /usr/local/bin/http . +COPY --from=0 /usr/local/bin/game . +COPY csvdata/data ./csvdata/data +COPY ./docker/conf.yaml ./conf/ + + +RUN mkdir -p /data/logs && \ + echo 'export PATH=$PATH:/data' >> /etc/profile && \ + source /etc/profile +#RUN apt-get update && \ +# apt-get install -y net-tools iputils-ping iproute2 +EXPOSE 8080 +EXPOSE 8849 + +CMD ["http"] \ No newline at end of file diff --git a/docker/conf.yaml b/docker/conf.yaml new file mode 100644 index 0000000..f64d785 --- /dev/null +++ b/docker/conf.yaml @@ -0,0 +1,93 @@ +develop: true +name: "Pro2DServer" +workerid: 1 +datacenterid: 1 + +mongo: &default-mongo + host: "host.docker.internal" + port: 27017 + user: "root" + password: "root" + timeout: 2 + maxnum: 50 + +redis: &default-redis + address: "host.docker.internal:6100" + auth: "" + +etcd: + dialtimeout: 5 + endpoints: + - "host.docker.internal:2379" + +server_account: + id: 1 + name: "account" + ip: "192.168.0.206" + port: 8080 + pool_size: 1 + debugport: 6062 + mongo: + <<: *default-mongo + dbname: "account" + redis: + <<: *default-redis + db: 0 + +server_game: + id: 1 + name: "game" + ip: "192.168.0.206" + encipher: false + port: 8849 + debugport: 6060 + gm: 8880 + pool_size: 1 + plugin_path: "./bin/plugin.so" + mongo: + <<: *default-mongo + dbname: "game" + redis: + <<: *default-redis + db: 0 + +server_game1: + id: 2 + name: "game" + ip: "192.168.0.206" + encipher: false + port: 8850 + debugport: 6061 + gm: 8881 + pool_size: 1 + plugin_path: "./bin/plugin.so" + mongo: + <<: *default-mongo + dbname: "game" + redis: + <<: *default-redis + db: 0 +test_client: + ip: "127.0.0.1" + port: 8849 + count: 1 + +logconf: + TimeFormat: "2006-01-02 15:04:05" + Console: + level: "TRAC" + color: true + File: + level: "TRAC" + daily: true + maxlines: 1000000 + maxsize: 1 + maxdays: -1 + append: true + permit: "0660" +# Conn: +# net: "tcp" +# addr: "127.0.0.1" +# level: "TRAC" +# reconnect: false +# reconnectOnMsg: false \ No newline at end of file diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml new file mode 100644 index 0000000..d99ff7a --- /dev/null +++ b/docker/docker-compose.yml @@ -0,0 +1,51 @@ +version: '3.3' +services: + db: + image: mongo + container_name: mongodb-pro2d + ports: + - '27017:27017' + restart: always + environment: + MONGO_INITDB_ROOT_USERNAME: root #mongo默认的账号 + MONGO_INITDB_ROOT_PASSWORD: root #mongo默认的密码 + volumes: + - ./.docker/mongo_data:/data/db + - ./.docker/mongo.conf:/data/mongo.conf +# command: --config /data/mongo.conf # 配置文件 + command: [--auth] # 配置文件 + etcd: + image: xieyanze/etcd3 + container_name: etcd3-pro2d + restart: always + ports: + - '2379:2379' + redis: + image: redis:latest + container_name: redis-pro2d + restart: always + ports: + - '6100:6379' + volumes: + - ./.docker/redis_data:/data/db + + account: + image: pro2d + container_name: account-pro2d + restart: always + ports: + - '8080:8080' + volumes: + - ./.docker/account_logs:/data/logs + working_dir: /data + command: [./http] + game: + image: pro2d + container_name: game-pro2d + restart: always + ports: + - '8849:8849' + volumes: + - ./.docker/game_logs:/data/logs + working_dir: /data + command: [./game] diff --git a/docker/restart.sh b/docker/restart.sh new file mode 100644 index 0000000..47a7334 --- /dev/null +++ b/docker/restart.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +host='-H 192.168.0.100:2375' +docker-compose -f /Users/zhaolu/Documents/pro2d/docker-compose.yml down +docker load < /Users/zhaolu/Documents/pro2d/pro2d.tar +docker-compose -f /Users/zhaolu/Documents/pro2d/docker-compose.yml up -d +docker ps -a \ No newline at end of file -- libgit2 0.21.2