You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

77 lines
1.4KB

  1. FROM ubuntu:24.04
  2. ENV LANG C.UTF-8
  3. ARG JOBS
  4. # Install make and sudo to bootstrap
  5. ENV DEBIAN_FRONTEND=noninteractive
  6. RUN apt-get update && apt-get install -y --no-install-recommends \
  7. make \
  8. sudo \
  9. ca-certificates \
  10. git \
  11. build-essential \
  12. autoconf \
  13. automake \
  14. bison \
  15. flex \
  16. gawk \
  17. libtool-bin \
  18. libncurses5-dev \
  19. unzip \
  20. zip \
  21. jq \
  22. libgl-dev \
  23. libglu-dev \
  24. git \
  25. wget \
  26. curl \
  27. cmake \
  28. nasm \
  29. xz-utils \
  30. file \
  31. python3 \
  32. libxml2-dev \
  33. libssl-dev \
  34. texinfo \
  35. help2man \
  36. libz-dev \
  37. rsync \
  38. xxd \
  39. perl \
  40. coreutils \
  41. zstd \
  42. markdown \
  43. libarchive-tools \
  44. gettext
  45. RUN echo "%sudo ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
  46. # Create unprivileged user to build toolchains and plugins
  47. RUN useradd --non-unique --create-home --uid 1000 --gid 1000 --shell /bin/bash build
  48. RUN usermod -aG sudo build
  49. # Switch user from root
  50. USER build
  51. # Create toolchain directory
  52. RUN mkdir -p /home/build/rack-plugin-toolchain
  53. WORKDIR /home/build/rack-plugin-toolchain
  54. COPY Makefile /home/build/rack-plugin-toolchain/
  55. # Clean up files to free up space
  56. USER root
  57. RUN rm -rf /var/lib/apt/lists/*
  58. USER build
  59. COPY MacOSX11.1.sdk.tar.* /home/build/rack-plugin-toolchain/
  60. # Build toolchains
  61. RUN JOBS=$JOBS make toolchain-mac
  62. RUN JOBS=$JOBS make toolchain-win
  63. RUN JOBS=$JOBS make toolchain-lin
  64. RUN JOBS=$JOBS make cppcheck
  65. RUN rm MacOSX11.1.sdk.tar.*