Skip to content

Instantly share code, notes, and snippets.

@watbulb
Created May 18, 2020 21:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save watbulb/2c5c8e4b892cff2552cd2addad4b1620 to your computer and use it in GitHub Desktop.
Save watbulb/2c5c8e4b892cff2552cd2addad4b1620 to your computer and use it in GitHub Desktop.
libelfmaster docker image
### 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"]
@watbulb
Copy link
Author

watbulb commented May 18, 2020

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"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment