ci: switch from Kubernetes to Podman for local deployment

- Update Dockerfile to use fully qualified composer image name
- Replace kubectl commands with podman kube play/down in Makefile
- Change from Kubernetes Secret to ConfigMap for environment variables
- Set imagePullPolicy to Never and use localhost/ prefix for local images
- Reduce replica count to 1 for local development
- Add stop target to Makefile for easier cleanup
This commit is contained in:
Jp
2026-02-26 10:55:30 +08:00
parent 87fd507618
commit baf68078a7
3 changed files with 23 additions and 13 deletions

View File

@@ -25,7 +25,7 @@ RUN chmod +x /usr/local/bin/install-php-extensions && \
RUN apt-get clean && rm -rf /var/lib/apt/lists/* RUN apt-get clean && rm -rf /var/lib/apt/lists/*
# Get latest Composer # Get latest Composer
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer COPY --from=docker.io/library/composer:latest /usr/bin/composer /usr/bin/composer
# Copy application files # Copy application files
COPY --chown=www-data:www-data . /var/www COPY --chown=www-data:www-data . /var/www

View File

@@ -5,7 +5,17 @@ build:
deploy: build deploy: build
@if [ ! -f .env ]; then cp .env.example .env; fi @if [ ! -f .env ]; then cp .env.example .env; fi
kubectl create secret generic mkm-admin-env --from-env-file=.env --dry-run=client -o yaml | kubectl apply -f - @echo "Cleaning up existing deployment if any..."
kubectl apply -f k8s/deployment.yaml -podman kube down k8s/deployment.yaml >/dev/null 2>&1
@echo "Generating merged deployment with ConfigMap..."
@kubectl create configmap mkm-admin-config --from-env-file=.env --dry-run=client -o yaml > k8s/merged_deployment.yaml
@echo "---" >> k8s/merged_deployment.yaml
@cat k8s/deployment.yaml >> k8s/merged_deployment.yaml
@echo "Deploying via podman kube play..."
podman kube play k8s/merged_deployment.yaml
@rm k8s/merged_deployment.yaml
.PHONY: build deploy stop:
-podman kube down k8s/deployment.yaml >/dev/null 2>&1
.PHONY: build deploy stop

View File

@@ -5,7 +5,7 @@ metadata:
labels: labels:
app: mkm-admin app: mkm-admin
spec: spec:
replicas: 3 replicas: 1
selector: selector:
matchLabels: matchLabels:
app: mkm-admin app: mkm-admin
@@ -16,13 +16,13 @@ spec:
spec: spec:
containers: containers:
- name: mkm-admin - name: mkm-admin
image: mkm-admin:latest image: localhost/mkm-admin:latest
imagePullPolicy: Always imagePullPolicy: Never
ports: ports:
- containerPort: 8000 - containerPort: 8000
envFrom: envFrom:
- secretRef: - configMapRef:
name: mkm-admin-env name: mkm-admin-config
resources: resources:
requests: requests:
cpu: "100m" cpu: "100m"
@@ -52,12 +52,12 @@ spec:
spec: spec:
containers: containers:
- name: worker - name: worker
image: mkm-admin:latest image: localhost/mkm-admin:latest
imagePullPolicy: Always imagePullPolicy: Never
command: ["php", "artisan", "horizon"] command: ["php", "artisan", "horizon"]
envFrom: envFrom:
- secretRef: - configMapRef:
name: mkm-admin-env name: mkm-admin-config
resources: resources:
requests: requests:
cpu: "100m" cpu: "100m"