Closed3

使えそうなnginxイメージ作り

not75743not75743

任意の文章を返す

FROM nginx:1.27.4-bookworm

# 任意の index.html をコンテナ内の適切なディレクトリにコピー
COPY index.html /usr/share/nginx/html/index.html
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>Nginx</title>
</head>
<body>
    <h1 style="color: red;">test</h1>
</body>
</html>

not75743not75743

自身のpod名を返却する

LBのテストに便利かも

apiVersion: apps/v1
kind: Deployment
metadata:
  name: podname-nginx-deployment
spec:
  replicas: 5
  selector:
    matchLabels:
      app: podname-nginx
  template:
    metadata:
      labels:
        app: podname-nginx
    spec:
      containers:
        - name: nginx
          image: nginx:1.27.4-bookworm
          env:
            - name: POD_NAME
              valueFrom:
                fieldRef:
                  fieldPath: metadata.name
          command: ["/bin/sh", "-c"]
          args:
            - >
              echo "<!DOCTYPE html><html><head><meta charset='UTF-8'><title>Pod Info</title></head><body><h1 style='color: green;'>Pod Name: $POD_NAME</h1></body></html>" > /usr/share/nginx/html/index.html &&
              exec nginx -g 'daemon off;'
          ports:
            - containerPort: 80

---
apiVersion: v1
kind: Service
metadata:
  name: podname-nginx-service
spec:
  type: ClusterIP
  selector:
    app: podname-nginx
  ports:
    - port: 80
      targetPort: 80

---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: nginx-ingress
  annotations:
    spec.ingressClassName: "traefik"
spec:
  ingressClassName: traefik
  rules:
    - host: <host>
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: podname-nginx-service
                port:
                  number: 80
not75743not75743

(おまけ)ECR push用のMakefile

AWS_ACCOUNT_ID = 
REGION         = ap-northeast-1
ECR_REPO       = 
IMAGE_NAME     = 
TAG            = 

# ECRのURIを生成
ECR_URI = $(AWS_ACCOUNT_ID).dkr.ecr.$(REGION).amazonaws.com

build_and_push:
	aws ecr get-login-password --region $(REGION) | docker login --username AWS --password-stdin $(ECR_URI)
	docker build -t $(IMAGE_NAME):$(TAG) .
	docker tag $(IMAGE_NAME):$(TAG) $(ECR_URI)/$(ECR_REPO):$(TAG)
	docker push $(ECR_URI)/$(ECR_REPO):$(TAG)

このスクラップは6ヶ月前にクローズされました