我正在开发一个Erlang应用程序,为此我使用了一个坞映像。
docker-compose.yml:
FROM centos
LABEL Name=myimage Version=2.0.0
RUN set -e \
&& yum -y install \
autoconf \
gcc \
gcc-c++ \
git \
glibc-devel \
make \
ncurses-devel \
tar \
curl
ENV SSL_VERSION="1.0.2p"
RUN set -e \
&& mkdir -p /tmp/openssl \
&& cd /tmp \
&& curl -fSL -o openssl.sha256 http://www.openssl.org/source/openssl-${SSL_VERSION}.tar.gz.sha256 \
&& curl -fSL -o openssl.tar.gz http://www.openssl.org/source/openssl-${SSL_VERSION}.tar.gz \
&& SHA=$(printf "%s openssl.tar.gz" `cat openssl.sha256` | sha256sum -c -); if [ "openssl.tar.gz: OK" != "${SHA}" ]; then exit 3; fi \
&& tar -zxf openssl.tar.gz -C /tmp/openssl --strip-components=1 \
&& cd /tmp/openssl \
&& ./Configure \
--prefix=/usr/local/ssl \
--openssldir=/usr/local/ssl \
linux-x86_64 \
shared \
&& make -j4 \
&& make install \
&& rm -Rf /tmp/openssl*
ENV OTP_VERSION="20.3.6"
ENV WITH_NATIVE=true
RUN set -e \
&& mkdir -p /tmp/otp_src \
&& cd /tmp \
&& curl --tlsv1.2 -fSL -o otp_src.tar.gz https://github.com/erlang/otp/archive/OTP-20.3.6.tar.gz \
&& tar -zxf otp_src.tar.gz -C /tmp/otp_src --strip-components=1 \
&& cd /tmp/otp_src \
&& ./otp_build autoconf \
&& ./configure \
--prefix=/usr/local/otp \
--enable-threads \
--enable-smp-support \
--enable-kernel-poll \
--disable-dynamic-ssl-lib \
--with-ssl=/usr/local/ssl \
`test "${WITH_NATIVE}" = "true" && echo "--enable-hipe --enable-native-libs"` \
&& make -j4 \
&& make install \
&& ln -s /usr/local/otp_${OTP_VERSION} /usr/local/otp \
&& rm -Rf /tmp/otp_src*
ENV PATH $PATH:/usr/local/otp/bin
RUN set -e \
&& yum -y install \
which
ENV REBAR3_VERSION="3.6.1"
RUN set -xe \
&& REBAR3_DOWNLOAD_URL="https://github.com/erlang/rebar3/archive/${REBAR3_VERSION}.tar.gz" \
&& REBAR3_DOWNLOAD_SHA256="40b3c85440f3235c7b149578d0211bdf57d1c66390f888bb771704f8abc71033" \
&& mkdir -p /usr/src/rebar3-src \
&& curl --tlsv1.2 -fSL -o rebar3-src.tar.gz "$REBAR3_DOWNLOAD_URL" \
&& echo "$REBAR3_DOWNLOAD_SHA256 rebar3-src.tar.gz" | sha256sum -c - \
&& tar -xzf rebar3-src.tar.gz -C /usr/src/rebar3-src --strip-components=1 \
&& rm rebar3-src.tar.gz \
&& cd /usr/src/rebar3-src \
&& HOME=$PWD ./bootstrap \
&& install -v ./rebar3 /usr/local/bin/ \
&& rm -rf /usr/src/rebar3-src
RUN mkdir /myimage
WORKDIR /myimage运行docker-compose的命令
sudo docker-compose build
sudo docker-compose run --rm myimage bash当我尝试运行由Ubuntu-18.04创建的生产焦油时,我得到:
加载共享库时出错: libtinfo.so.6:无法打开共享对象文件:没有这样的文件或目录。
我编译时没有任何错误。当我从Debian-9创建这个tar时,它不会出错。
Debian机器已经在本地安装了erlang-otp,但是Ubuntu没有。
发布于 2020-03-10 16:05:11
要修复依赖关系,可以尝试:
Docker升级到17.02curl -sSL https://get.docker.com/ | sudo bashFROM centos),所以请尝试yum installrpm -ql libXtst-devel-1.2.2-2.1.el6.x86_64https://devops.stackexchange.com/questions/11026
复制相似问题