我将以下Dockerfile推送到Heroku:
FROM ubuntu:bionic
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update --fix-missing && \
apt-get upgrade -y && \
apt-get -y install iputils-ping && \
apt-get -y install net-tools && \
apt-get clean
COPY xampp-linux-x64-8.1.0-0-installer.run /opt/xampp-linux-x64-8.1.0-0-installer.run
RUN chmod +x /opt/xampp-linux-x64-8.1.0-0-installer.run && \
bash -c ./opt/xampp-linux-x64-8.1.0-0-installer.run && \
sed -i.bak s'/Require local/Require all granted/g' /opt/lampp/etc/extra/httpd-xampp.conf && \
sed -i.bak s'/Listen 80/Listen ${PORT}/g' /opt/lampp/etc/httpd.conf && \
# Enable error display in php
sed -i.bak s'/display_errors=Off/display_errors=On/g' /opt/lampp/etc/php.ini && \
sed -i.bak s'/post_max_size=40M/post_max_size=100M/g' /opt/lampp/etc/php.ini
CMD ["./opt/lampp/lampp", "start"]
字符串
我的问题是,我得到一个错误,为启动xampp根是必要的,我不知道如何配置一个CMD作为根运行。
2023-06-22T10:52:47.278663+00:00 heroku[web.1]: Starting process with command `./opt/lampp/lampp start`
2023-06-22T10:52:48.271574+00:00 heroku[web.1]: Process exited with status 2
2023-06-22T10:52:48.142173+00:00 app[web.1]: Starting XAMPP for Linux 8.1.0-0...
2023-06-22T10:52:48.147100+00:00 app[web.1]: You need to be root to perform this action.
型
有谁知道我如何支持这个问题吗?例如,更改权限,使xampp可以在不需要root用户的情况下运行?
如果我将xampp设置为在启动时启动并删除CMD,heroku以/bin/bash开始,然后崩溃:
2023-06-22T12:52:54.454322+00:00 heroku[web.1]: Starting process with command `/bin/bash`
2023-06-22T12:52:55.315574+00:00 heroku[web.1]: Process exited with status 0
2023-06-22T12:52:55.349266+00:00 heroku[web.1]: State changed from starting to crashed
型
1条答案
按热度按时间a64a0gku1#
事实证明,出于安全原因,dockers没有root权限。所以我在寻找一种替代方法,但作为root执行不是一个选择。
https://devcenter.heroku.com/articles/container-registry-and-runtime#testing-an-image-locally