Created
May 18, 2020 21:01
-
-
Save watbulb/2c5c8e4b892cff2552cd2addad4b1620 to your computer and use it in GitHub Desktop.
libelfmaster docker image
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
### libelfmaster docker based image ### | |
# Build: docker build -t "libelfmaster:latest" -f Dockerfile.libelfmaster . | |
# Run: docker run --rm -it -v ${PWD}/data:/tmp/data "libelfmaster:latest" | |
# | |
# Maintainer: https://github.com/watbulb | |
### | |
FROM ubuntu:latest | |
# Environment | |
ENV INSTALL_PREFIX=/opt/elfmaster | |
ENV USER=appuser | |
ENV HOME=/home/appuser | |
ENV BASE=${INSTALL_PREFIX} | |
# Dependencies | |
RUN \ | |
apt-get update && apt-get install --no-install-recommends -y \ | |
git \ | |
vim \ | |
bash \ | |
make \ | |
gzip \ | |
libck-dev \ | |
libcapstone-dev \ | |
pkg-config \ | |
ca-certificates \ | |
gcc-9-multilib \ | |
g++-9-multilib | |
# Create an non-root container user | |
RUN \ | |
groupadd -g 999 appuser && \ | |
useradd -m -r -u 999 -g appuser -s '/bin/bash' appuser | |
# Grab libelfmaster | |
RUN mkdir -p ${INSTALL_PREFIX} && chown -R ${USER}:${USER} ${INSTALL_PREFIX} | |
USER ${USER} | |
WORKDIR ${HOME} | |
RUN git clone https://github.com/elfmaster/libelfmaster | |
# Compile libelfmaster | |
WORKDIR ${HOME}/libelfmaster | |
RUN CC=gcc-9 CXX=g++-9 ./configure --prefix=${INSTALL_PREFIX} | |
RUN \ | |
make -j$(nproc) && make CC=gcc-9 CXX=g++-9 -C ./examples && \ | |
make INSTALL_PREFIX=${INSTALL_PREFIX} install && \ | |
cp -fr ./examples ${INSTALL_PREFIX} | |
# Cleanup dependencies (some) | |
USER root | |
RUN apt-get purge -y gcc-9-multilib g++-9-multilib ca-certificates && apt-get autoremove -y | |
RUN apt-get clean | |
# Fin. | |
USER ${USER} | |
WORKDIR ${BASE} | |
SHELL ["/bin/bash"] | |
ENTRYPOINT ["/bin/bash", "-i"] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Simple docker ubuntu based image for libelfmaster (non-root runtime).
This build also includes capstone for future development.
Build:
docker build -t "libelfmaster:latest" -f Dockerfile.libelfmaster .
Run:
docker run --rm -it -v ${PWD}/data:/tmp/data "libelfmaster:latest"