docker COPY nginx usr/share/nginx/html 未复制

问题描述 投票:0回答:1

我构建了 docker 镜像,并将当前目录文件复制到 usr/share/nginx/html 中。

FROM nginx:alpine
COPY . /usr/share/nginx/html
EXPOSE 80

我定义了要复制到卷挂载文件的 yaml 文件。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: backend-frontend
spec:
  replicas: 2
  selector:
    matchLabels:
      app: backend-frontend
  template:
    metadata:
      labels:
        app: backend-frontend
    spec:
      containers:
        - name: backend
          image: suryeon/project3-backend:project
          volumeMounts:
            - name: shared-volume
              mountPath: "/app/frontend"  
          ports:
            - containerPort: 3000
          env:
            - name: MYSQL_HOST
              value: mysql-service 
            - name: MYSQL_DATABASE
              value: project3
        - name: frontend
          image: suryeon/project3-frontend:project
          volumeMounts:
            - name: shared-volume
              mountPath: "/app/frontend"
          command: ["/bin/sh", "-c"]
          args:
            - |
              echo "Starting to copy files from /usr/share/nginx/html to /app/frontend" &&
              cp -r /usr/share/nginx/html/* /app/frontend &&
              echo "Starting Nginx server" &&
              nginx -g 'daemon off;'
          ports:
            - containerPort: 80
      imagePullSecrets:
        - name: my-docker-registry-secret
      volumes:  
        - name: shared-volume
          emptyDir: {} 

但是当我检查pod中挂载的目录时,nginx默认提供的只有index.html和50x.html。我该如何解决这个问题?

PS C:\Users\suryeon\Onedrive\project2-2> kubectl exec -it backend-frontend-6979db74c7-df74n -c frontend -- ls /usr/share/nginx/html
50x.html    index.html
docker nginx
1个回答
0
投票

你抄错了。暂时忘掉有关 Kubernetes 和 Pod 的一切吧。

docker run --rm --entrypoint=/bin/bash suryeon/project3-frontend:project -c "ls -l /usr/share/nginx/html"

如果这没有列出您复制的内容,那么您就有问题了,您不应该在 k8s 资源中使用

args:
来修复它。

检查您的

.dockerignore
或您在
docker build
中使用的文件夹/上下文,因此在构建图像时设置为
COPY .

© www.soinside.com 2019 - 2024. All rights reserved.