我在尝试使用erlang 26从源代码编译构建映像时遇到了问题,当我运行docker build .
时,我得到
=> ERROR [ 7/14] RUN /home/erl/otp_src_26.0.2/make 0.3s
------
> [ 7/14] RUN /home/erl/otp_src_26.0.2/make:
#0 0.244 /bin/sh: 1: /home/erl/otp_src_26.0.2/make: Permission denied
------
Dockerfile:53
--------------------
51 |
52 |
53 | >>> RUN /home/erl/otp_src_${ERLANG_VERSION}/make
54 |
55 | RUN /home/erl/otp_src_${ERLANG_VERSION}/make install && \
--------------------
ERROR: failed to solve: process "/bin/sh -c /home/erl/otp_src_${ERLANG_VERSION}/make" did not complete successfully: exit code: 126
我试过用USER root
设置root用户,用make 4.2
和chmod 777
设置整个文件夹,但没有任何变化。我可以在我的本地机器上遵循相同的步骤,它们工作。
在此之前,我使用https://packages.erlang-solutions.com/erlang-solutions_2.0_all.deb
,但他们不提供最新版本。
我知道我可以使用官方形象,但我喜欢先这样做
这里是Dockerfile
FROM ubuntu:22.04
ENV LANG C.UTF-8
ENV LC_ALL C.UTF-8
ENV ERLANG_VERSION 26.0.2
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update -qq && \
apt-get install -y --no-install-recommends \
ca-certificates \
git \
gnupg \
inotify-tools \
make \
gcc \
libssl-dev \
libncurses-dev \
wget && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
# Install Erlang
RUN wget -P /home/erl https://github.com/erlang/otp/releases/download/OTP-${ERLANG_VERSION}/otp_src_${ERLANG_VERSION}.tar.gz && \
tar -xf /home/erl/otp_src_${ERLANG_VERSION}.tar.gz -C /home/erl
RUN /home/erl/otp_src_${ERLANG_VERSION}/configure
RUN /home/erl/otp_src_${ERLANG_VERSION}/make
RUN /home/erl/otp_src_${ERLANG_VERSION}/make install && \
rm -r /home/erl
WORKDIR /app
1条答案
按热度按时间epggiuax1#
/home/erl/otp_src_${ERLANG_VERSION}/make
是一个目录,所以当你试图运行它时,你会得到一个神秘的消息“Permission denied”。make
可执行文件不在Erlang目录中。安装在/usr/bin
中。Make假定您从项目所在的目录运行它。而不是
你可以
cd
到目录中并运行你需要的命令。这样