gpt4 book ai didi

docker - 缺少对以下路径的写许可权:/var/www/html/pub/media

转载 作者:行者123 更新时间:2023-12-02 12:26:06 29 4
gpt4 key购买 nike

kubectl -n magento logs magento-install-jssk6
我在安装作业中得到 Database found In ConfigModel.php line 166:Missing write permissions to the following paths: /var/www/html/pub/media:
apiVersion: batch/v1
kind: Job
metadata:
name: magento-install
namespace: magento
spec:
template:
metadata:
name: install
labels:
app: magento-install
k8s-app: magento
spec:
containers:
- name: magento-setup
image: kiweeteam/magento2:vanilla-2.3.4-php7.3-fpm
command: ["/bin/sh"]
args:
- -c
- |
/bin/bash <<'EOF'
bin/install.sh
php bin/magento setup:perf:generate-fixtures setup/performance-toolkit/profiles/ce/small.xml
magerun index:list | awk '{print $2}' | tail -n+4 | xargs -I{} magerun index:set-mode schedule {}
magerun cache:flush
EOF
envFrom:
- configMapRef:
name: config
volumeMounts:
- mountPath: /var/www/html/pub/media
name: media
volumes:
- name: media
persistentVolumeClaim:
claimName: media
restartPolicy: OnFailure

最佳答案

and when I try to change permissions I am getting chown: changingownership of '/var/www/html/pub/media': Operation not permitted


发生这种情况是因为您以 chown用户身份运行 www-data,而该目录的当前所有者是 root
您可以使用以 root(标识为 0的用户)运行 init container来解决问题。在下面,您可以看到 magento-install Job的修改后的版本,其中已经添加了 init cotntainer :
apiVersion: batch/v1
kind: Job
metadata:
name: magento-install
namespace: magento
spec:
template:
metadata:
name: install
labels:
app: magento-install
k8s-app: magento
spec:
initContainers:
- name: magento-chown
securityContext:
runAsUser: 0
image: kiweeteam/magento2:vanilla-2.3.4-php7.3-fpm
command: ['sh', '-c', 'chown -R www-data:www-data /var/www/html/pub/media']
volumeMounts:
- name: media
mountPath: "/var/www/html/pub/media"
containers:
- name: magento-setup
image: kiweeteam/magento2:vanilla-2.3.4-php7.3-fpm
command: ["/bin/sh"]
args:
- -c
- |
/bin/bash <<'EOF'
bin/install.sh
php bin/magento setup:perf:generate-fixtures setup/performance-toolkit/profiles/ce/small.xml
magerun index:list | awk '{print $2}' | tail -n+4 | xargs -I{} magerun index:set-mode schedule {}
magerun cache:flush
EOF
envFrom:
- configMapRef:
name: config
volumeMounts:
- mountPath: /var/www/html/pub/media
name: media
volumes:
- name: media
persistentVolumeClaim:
claimName: media
restartPolicy: OnFailure
使用以下方法附加到新创建的 Pod后:
kubectl exec -ti -n magento magento-install-z66qg -- /bin/bash
您会看到 /var/www/html/pub/media目录的当前所有者不再是 root,而是 www-data用户:
www-data@magento-install-z66qg:~/html$ ls -ld /var/www/html/pub/media
drwxr-xr-x 3 www-data www-data 4096 Jul 27 18:45 /var/www/html/pub/media
我们可以进一步简化它。 初始化容器甚至不需要使用 kiweeteam/magento2:vanilla-2.3.4-php7.3-fpm图像。它也可能是一个基于 busybox的简单容器,默认情况下它作为 root运行,因此您可以忽略前面示例中的安全上下文,并且 initContainers部分将如下所示:
initContainers:
- name: magento-chown
image: busybox
command: ['sh', '-c', 'chown -R www-data:www-data /var/www/html/pub/media']
volumeMounts:
- name: media
最终效果将完全相同。

关于docker - 缺少对以下路径的写许可权:/var/www/html/pub/media,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63070335/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com