Dockerfile 1.3 KB

12345678910111213141516171819202122232425262728293031
  1. FROM ubuntu:24.04
  2. ENV DEBIAN_FRONTEND=noninteractive
  3. RUN \
  4. apt-get -y update && \
  5. apt-get -y dist-upgrade && \
  6. apt-get -y install build-essential yasm nasm \
  7. xxd pkgconf curl wget unzip zip git subversion mercurial rsync jq \
  8. autoconf automake libtool libtool-bin autopoint gettext cmake clang meson ninja-build \
  9. texinfo texi2html help2man flex bison groff \
  10. gperf itstool ragel libc6-dev zlib1g-dev libssl-dev \
  11. gtk-doc-tools gobject-introspection gawk \
  12. ocaml ocamlbuild libnum-ocaml-dev indent p7zip-full \
  13. python3-setuptools python3-jinja2 python3-jsonschema python3-apt python-is-python3 && \
  14. apt-get -y clean && \
  15. git config --global user.email "builder@localhost" && \
  16. git config --global user.name "Builder" && \
  17. git config --global advice.detachedHead false
  18. ENV CARGO_HOME="/opt/cargo" RUSTUP_HOME="/opt/rustup" PATH="/opt/cargo/bin:${PATH}"
  19. RUN curl https://sh.rustup.rs -sSf | bash -s -- -y --no-modify-path && \
  20. cargo install cargo-c && rm -rf "${CARGO_HOME}"/registry "${CARGO_HOME}"/git
  21. RUN --mount=src=.,dst=/input \
  22. for s in /input/*.sh; do cp $s /usr/bin/$(echo $s | sed -e 's|.*/||' -e 's/\.sh$//'); done
  23. ENV HOST_CC="gcc" \
  24. HOST_CXX="g++" \
  25. HOST_CFLAGS="-O2 -pipe" \
  26. HOST_CXXFLAGS="-O2 -pipe"