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/*
# 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 --chown=www-data:www-data . /var/www

View File

@@ -5,7 +5,17 @@ build:
deploy: build
@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 -
kubectl apply -f k8s/deployment.yaml
@echo "Cleaning up existing deployment if any..."
-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:
app: mkm-admin
spec:
replicas: 3
replicas: 1
selector:
matchLabels:
app: mkm-admin
@@ -16,13 +16,13 @@ spec:
spec:
containers:
- name: mkm-admin
image: mkm-admin:latest
imagePullPolicy: Always
image: localhost/mkm-admin:latest
imagePullPolicy: Never
ports:
- containerPort: 8000
envFrom:
- secretRef:
name: mkm-admin-env
- configMapRef:
name: mkm-admin-config
resources:
requests:
cpu: "100m"
@@ -52,12 +52,12 @@ spec:
spec:
containers:
- name: worker
image: mkm-admin:latest
imagePullPolicy: Always
image: localhost/mkm-admin:latest
imagePullPolicy: Never
command: ["php", "artisan", "horizon"]
envFrom:
- secretRef:
name: mkm-admin-env
- configMapRef:
name: mkm-admin-config
resources:
requests:
cpu: "100m"