Dockerfile.ubuntu.arm64 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. ARG DOTNET_VERSION=8.0
  2. FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION}-jammy
  3. # Docker build arguments
  4. ARG SOURCE_DIR=/jellyfin
  5. ARG ARTIFACT_DIR=/dist
  6. # Docker run environment
  7. ENV SOURCE_DIR=/jellyfin
  8. ENV ARTIFACT_DIR=/dist
  9. ENV DEB_BUILD_OPTIONS=noddebs
  10. ENV ARCH=amd64
  11. ENV IS_DOCKER=YES
  12. # Prepare Debian build environment
  13. RUN apt-get update -yqq \
  14. && apt-get install --no-install-recommends -yqq \
  15. debhelper gnupg wget ca-certificates devscripts \
  16. mmv build-essential lsb-release
  17. # Prepare the cross-toolchain
  18. RUN rm /etc/apt/sources.list \
  19. && export CODENAME="$( lsb_release -c -s )" \
  20. && echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ ${CODENAME} main restricted universe multiverse" >>/etc/apt/sources.list.d/amd64.list \
  21. && echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ ${CODENAME}-updates main restricted universe multiverse" >>/etc/apt/sources.list.d/amd64.list \
  22. && echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ ${CODENAME}-backports main restricted universe multiverse" >>/etc/apt/sources.list.d/amd64.list \
  23. && echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ ${CODENAME}-security main restricted universe multiverse" >>/etc/apt/sources.list.d/amd64.list \
  24. && echo "deb [arch=arm64] http://ports.ubuntu.com/ ${CODENAME} main restricted universe multiverse" >>/etc/apt/sources.list.d/arm64.list \
  25. && echo "deb [arch=arm64] http://ports.ubuntu.com/ ${CODENAME}-updates main restricted universe multiverse" >>/etc/apt/sources.list.d/arm64.list \
  26. && echo "deb [arch=arm64] http://ports.ubuntu.com/ ${CODENAME}-backports main restricted universe multiverse" >>/etc/apt/sources.list.d/arm64.list \
  27. && echo "deb [arch=arm64] http://ports.ubuntu.com/ ${CODENAME}-security main restricted universe multiverse" >>/etc/apt/sources.list.d/arm64.list \
  28. && dpkg --add-architecture arm64 \
  29. && apt-get update -yqq \
  30. && apt-get install --no-install-recommends -yqq cross-gcc-dev \
  31. && TARGET_LIST="arm64" cross-gcc-gensource 12 \
  32. && cd cross-gcc-packages-amd64/cross-gcc-12-arm64 \
  33. && ln -fs /usr/share/zoneinfo/America/Toronto /etc/localtime \
  34. && apt-get install --no-install-recommends -yqq \
  35. gcc-12-source libstdc++6-arm64-cross binutils-aarch64-linux-gnu \
  36. bison flex libtool gdb sharutils netbase libmpc-dev \
  37. libmpfr-dev libgmp-dev systemtap-sdt-dev autogen expect chrpath zlib1g-dev \
  38. zip libc6-dev:arm64 linux-libc-dev:arm64 libgcc1:arm64 libcurl4-openssl-dev:arm64 \
  39. libfontconfig1-dev:arm64 libfreetype6-dev:arm64 liblttng-ust1:arm64 libstdc++6:arm64 libssl-dev:arm64 \
  40. && apt-get clean autoclean -yqq \
  41. && apt-get autoremove -yqq \
  42. && rm -rf /var/lib/apt/lists/*
  43. # Link to build script
  44. RUN ln -sf ${SOURCE_DIR}/deployment/build.ubuntu.arm64 /build.sh
  45. VOLUME ${SOURCE_DIR}/
  46. VOLUME ${ARTIFACT_DIR}/
  47. ENTRYPOINT ["/build.sh"]