docker run -d --name hyperf -v /mnt/hgfs/www/hyperf/:/hyperf-skeleton -p 9501:9501 -it --privileged -u root --entrypoint /bin/sh hyperf/hyperf:7.4-alpine-v3.11-swoole docker exec -it hyperf bash cd /hyperf-skeleton composer config -g repo.packagist composer https://mirrors.aliyun.com/composer composer create-project hyperf/hyperf-skeleton php /hyperf-skeleton/hyperf-skeleton/bin/hyperf.php start写个完整的k8s的yaml文件
时间: 2023-09-29 08:11:12 浏览: 148
好的,以下是一个完整的 Kubernetes YAML 文件示例,用于在 Kubernetes 中部署 Hyperf 应用:
```yaml
# 定义一个 Kubernetes 的 Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: hyperf-deployment
labels:
app: hyperf
spec:
replicas: 3
selector:
matchLabels:
app: hyperf
template:
metadata:
labels:
app: hyperf
spec:
containers:
- name: hyperf
image: hyperf/hyperf:7.4-alpine-v3.11-swoole
command: [ "sh", "-c", "php /hyperf-skeleton/bin/hyperf.php start" ]
ports:
- containerPort: 9501
volumeMounts:
- name: hyperf-volume
mountPath: /hyperf-skeleton
volumes:
- name: hyperf-volume
hostPath:
path: /mnt/hgfs/www/hyperf/
# 定义一个 Kubernetes 的 Service
---
apiVersion: v1
kind: Service
metadata:
name: hyperf-service
spec:
selector:
app: hyperf
ports:
- protocol: TCP
port: 9501
targetPort: 9501
type: ClusterIP
```
这个 YAML 文件定义了一个 Kubernetes 的 Deployment 和一个 Service。在 Deployment 中,我们定义了一个使用 Hyperf 容器镜像的 Pod 模板,使用 `volumeMounts` 字段将宿主机上 Hyperf 应用所在的目录 `/mnt/hgfs/www/hyperf/` 挂载到容器的 `/hyperf-skeleton` 目录下,并使用 `command` 字段指定容器启动 Hyperf 应用的命令 `php /hyperf-skeleton/bin/hyperf.php start`,使用 `ports` 字段将容器的 9501 端口暴露出来。在 Service 中,我们定义了一个 ClusterIP 类型的 Service,将容器的 9501 端口映射到 Kubernetes 集群内部的端口上,以便其他 Pod 可以通过 Service 访问 Hyperf 应用。