luoyangwei 1 vuosi sitten
vanhempi
sitoutus
3792e88550
2 muutettua tiedostoa jossa 153 lisäystä ja 0 poistoa
  1. 27 0
      Dockerfile
  2. 126 0
      docker-compose.yaml

+ 27 - 0
Dockerfile

@@ -0,0 +1,27 @@
+FROM golang:1.23 AS builder
+
+# Set destination for the application
+WORKDIR /src
+
+# Download Go modules
+COPY go.mod go.sum ./
+RUN go mod download
+
+# Copy the code into the container
+COPY . .
+
+RUN mkdir -p bin/ && go build -ldflags "-X main.Version=${TAG} -X main.Name=${NAME}" -o ./bin/ ./cmd/user/...
+
+FROM debian:stable-slim
+
+RUN apt-get update && apt-get install -y --no-install-recommends \
+		ca-certificates  \
+        netbase \
+        && rm -rf /var/lib/apt/lists/ \
+        && apt-get autoremove -y && apt-get autoclean -y
+
+COPY --from=builder /src/bin /app
+
+WORKDIR /app
+
+CMD ["./main", "-conf", "/data/conf"]

+ 126 - 0
docker-compose.yaml

@@ -0,0 +1,126 @@
+version: '3'
+
+services:
+    gate:
+        image: gate:${TAG}
+        container_name: gate
+        build:
+            context: ./
+            dockerfile: ./app/gate/Dockerfile
+        volumes:
+            - "${CONF_PATH}:/data/conf"
+            - "${LOG_PATH}:/app/logs"
+        environment:
+            - "TAG:${TAG}"
+            - "TZ=Asia/Shanghai"
+            - "APP_NAME=gate"
+        networks:
+            - "w303a-network"
+        ports:
+            - "3100:8000"
+            - "3101:9000"
+            - "3102:10000"
+    user:
+        image: user:${TAG}
+        container_name: user
+        build:
+            context: ./
+            dockerfile: ./app/user/Dockerfile
+        volumes:
+            - "${CONF_PATH}:/data/conf"
+            - "${LOG_PATH}:/app/logs"
+        environment:
+            - "TAG:${TAG}"
+            - "TZ=Asia/Shanghai"
+            - "APP_NAME=gate"
+        networks:
+            - "w303a-network"
+        ports:
+            - "3200:8000"
+            - "3201:9000"
+    push:
+        image: push:${TAG}
+        container_name: push
+        build:
+            context: ./
+            dockerfile: ./app/push/Dockerfile
+        volumes:
+            - "${CONF_PATH}:/data/conf"
+            - "${LOG_PATH}:/app/logs"
+        environment:
+            - "TAG:${TAG}"
+        networks:
+            - "w303a-network"
+        ports:
+            - "3300:8000"
+            - "3301:9000"
+    msg:
+        image: msg:${TAG}
+        container_name: msg
+        build:
+            context: ./
+            dockerfile: ./app/msg/Dockerfile
+        volumes:
+            - "${CONF_PATH}:/data/conf"
+            - "${LOG_PATH}:/app/logs"
+        environment:
+            - "TAG:${TAG}"
+        networks:
+            - "w303a-network"
+        ports:
+            - "3400:8000"
+            - "3401:9000"
+    mongodb:
+        image: mongo:latest
+        container_name: mongodb
+        ports:
+            - "27017:27017"
+        networks:
+            - "w303a-network"
+        volumes:
+            - "/var/local/mongodb_data:/data/db"
+        environment:
+            - "MONGO_INITDB_ROOT_USERNAME=root"
+            - "MONGO_INITDB_ROOT_PASSWORD=SKG0TOBRihVKm"
+    rabbitmq:
+        restart: always
+        image: rabbitmq:management
+        container_name: rabbitmq
+        hostname: rabbit
+        networks:
+            - "w303a-network"
+        ports:
+            - "5672:5672"
+            - "15672:15672"
+        environment:
+            TZ: Asia/Shanghai
+            RABBITMQ_DEFAULT_USER: gosys
+            RABBITMQ_DEFAULT_PASS: gosys
+        volumes:
+            - "/var/local/rabbitmq/data:/var/lib/rabbitmq"
+            - "/var/local/rabbitmq/conf:/etc/rabbitmq"
+    etcd:
+        hostname: etcd
+        image: bitnami/etcd:3.5
+        container_name: etcd
+        volumes:
+            - "/var/local/etcd/data:/bitnami/etcd/data"
+        networks:
+            - "w303a-network"
+        ports:
+            - "2379:2379"
+            - "2380:2380"
+        environment:
+            - "ALLOW_NONE_AUTHENTICATION=yes"
+            - "ETCD_ADVERTISE_CLIENT_URLS=http://0.0.0.0:2379"
+    etcdkeeper:
+        hostname: etcdkeeper
+        image: evildecay/etcdkeeper:latest
+        container_name: etcdkeeper
+        ports:
+            - "8099:8080"
+        networks:
+            - "w303a-network"
+networks:
+    w303a-network:
+        driver: "bridge"