Skip to content

Commit

Permalink
build: add compose / k8s deployment
Browse files Browse the repository at this point in the history
  • Loading branch information
JacobLinCool committed Feb 13, 2024
1 parent 97a51a9 commit 26b90ff
Show file tree
Hide file tree
Showing 11 changed files with 179 additions and 0 deletions.
4 changes: 4 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
.devcontainer/
.git/
.github/
deployment/
18 changes: 18 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
FROM golang:alpine AS builder

WORKDIR /app

COPY go.mod go.sum ./
RUN go mod download

COPY . .

RUN go build .

FROM alpine AS production

WORKDIR /app

COPY --from=builder /app/ad-service .

CMD ["./ad-service"]
3 changes: 3 additions & 0 deletions deployment/docker-compose/.env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
MONGODB_URI="mongodb://mongo:27017"
AD_SERVICE_PORT="8080"
AD_SERVICE_CACHE_TTL="1"
1 change: 1 addition & 0 deletions deployment/docker-compose/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.env
7 changes: 7 additions & 0 deletions deployment/docker-compose/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Deploy with Docker Compose

You can copy and configure the `.env.example` file to `.env` and then run the following command to deploy:

```bash
docker-compose up -d
```
23 changes: 23 additions & 0 deletions deployment/docker-compose/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
version: '3.8'

volumes:
mongo-data:

services:
server:
image: ghcr.io/jacoblincool/ad-service-dcard-2024
build:
context: ../..
dockerfile: Dockerfile
env_file:
- .env
environment:
- GIN_MODE=release
ports:
- "${AD_SERVICE_PORT}:${AD_SERVICE_PORT}"

mongo:
image: mongo:latest
restart: unless-stopped
volumes:
- mongo-data:/data/db
10 changes: 10 additions & 0 deletions deployment/kubernetes/env-configmap.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
apiVersion: v1
data:
AD_SERVICE_CACHE_TTL: "1"
AD_SERVICE_PORT: "8080"
MONGODB_URI: mongodb://mongo:27017
kind: ConfigMap
metadata:
labels:
io.kompose.service: server-env
name: env
12 changes: 12 additions & 0 deletions deployment/kubernetes/mongo-data-persistentvolumeclaim.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: mongo-data
name: mongo-data
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
36 changes: 36 additions & 0 deletions deployment/kubernetes/mongo-deployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert -o ../kubernetes/
kompose.version: 1.32.0 (HEAD)
labels:
io.kompose.service: mongo
name: mongo
spec:
replicas: 1
selector:
matchLabels:
io.kompose.service: mongo
strategy:
type: Recreate
template:
metadata:
annotations:
kompose.cmd: kompose convert -o ../kubernetes/
kompose.version: 1.32.0 (HEAD)
labels:
io.kompose.network/docker-compose-default: "true"
io.kompose.service: mongo
spec:
containers:
- image: mongo:latest
name: mongo
volumeMounts:
- mountPath: /data/db
name: mongo-data
restartPolicy: Always
volumes:
- name: mongo-data
persistentVolumeClaim:
claimName: mongo-data
49 changes: 49 additions & 0 deletions deployment/kubernetes/server-deployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert -o ../kubernetes/
kompose.version: 1.32.0 (HEAD)
labels:
io.kompose.service: server
name: server
spec:
replicas: 1
selector:
matchLabels:
io.kompose.service: server
template:
metadata:
annotations:
kompose.cmd: kompose convert -o ../kubernetes/
kompose.version: 1.32.0 (HEAD)
labels:
io.kompose.network/docker-compose-default: "true"
io.kompose.service: server
spec:
containers:
- env:
- name: AD_SERVICE_CACHE_TTL
valueFrom:
configMapKeyRef:
key: AD_SERVICE_CACHE_TTL
name: env
- name: AD_SERVICE_PORT
valueFrom:
configMapKeyRef:
key: AD_SERVICE_PORT
name: env
- name: GIN_MODE
value: release
- name: MONGODB_URI
valueFrom:
configMapKeyRef:
key: MONGODB_URI
name: env
image: jacoblincool/ad-service-dcard-2024
name: server
ports:
- containerPort: 8080
hostPort: 8080
protocol: TCP
restartPolicy: Always
16 changes: 16 additions & 0 deletions deployment/kubernetes/server-service.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
apiVersion: v1
kind: Service
metadata:
annotations:
kompose.cmd: kompose convert -o ../kubernetes/
kompose.version: 1.32.0 (HEAD)
labels:
io.kompose.service: server
name: server
spec:
ports:
- name: "8080"
port: 8080
targetPort: 8080
selector:
io.kompose.service: server

0 comments on commit 26b90ff

Please sign in to comment.