Skip to content

Commit

Permalink
feat: update Open edX image to use ubuntu 24.04 as base OS
Browse files Browse the repository at this point in the history
  • Loading branch information
DawoudSheraz committed Oct 10, 2024
1 parent 905c7a4 commit 89219b1
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 6 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
# It's important that we build the tutor binaries with the *oldest* possible
# OS releases and Python version. See these docs for more information:
# https://pyinstaller.org/en/stable/usage.html#making-gnu-linux-apps-forward-compatible
- os: ubuntu-20.04
- os: ubuntu-24.04
locale: C.UTF-8
# https://endoflife.date/macos
- os: macos-12
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ bootstrap-dev-plugins: bootstrap-dev ## Install dev requirements and all support
pip install -r requirements/plugins.txt

pull-base-images: # Manually pull base images
docker image pull docker.io/ubuntu:20.04
docker image pull docker.io/ubuntu:24.04

ci-info: ## Print info about environment
python --version
Expand Down
3 changes: 3 additions & 0 deletions changelog.d/20241010_122752_dawoud.sheraz_ubuntu_upgrade.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
- 💥[Feature] Update Open edX Image to use Ubuntu 24.04 as base OS. (by @dawoudsheraz)
- Change APP_USER_ID to 1001 as UID 1000 is now shipped by default
- Adds xmlsec related dependencies to fix xmlsec import issues during translations build
12 changes: 8 additions & 4 deletions tutor/templates/build/openedx/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1
###### Minimal image with base system requirements for most stages
FROM docker.io/ubuntu:20.04 AS minimal
FROM docker.io/ubuntu:24.04 AS minimal
LABEL maintainer="Overhang.io <[email protected]>"

ENV DEBIAN_FRONTEND=noninteractive
Expand All @@ -19,7 +19,7 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
apt update && \
apt install -y libssl-dev zlib1g-dev libbz2-dev \
libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \
xz-utils tk-dev libffi-dev liblzma-dev python-openssl git
xz-utils tk-dev libffi-dev liblzma-dev python3-openssl git

# Install pyenv
# https://www.python.org/downloads/
Expand Down Expand Up @@ -78,7 +78,10 @@ ENV XDG_CACHE_HOME=/openedx/.cache
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
--mount=type=cache,target=/var/lib/apt,sharing=locked \
apt update \
&& apt install -y software-properties-common libmysqlclient-dev libxmlsec1-dev libgeos-dev
&& apt install -y software-properties-common libmysqlclient-dev libxmlsec1-dev libgeos-dev \
# Install xmlsec dependencies
libxml2-dev \
libxmlsec1-openssl

# Install the right version of pip/setuptools
RUN --mount=type=cache,target=/openedx/.cache/pip,sharing=shared \
Expand Down Expand Up @@ -138,9 +141,10 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
apt update \
&& apt install -y gettext gfortran graphviz graphviz-dev libffi-dev libfreetype6-dev libgeos-dev libjpeg8-dev liblapack-dev libmysqlclient-dev libpng-dev libsqlite3-dev libxmlsec1-dev lynx mysql-client ntp pkg-config rdfind


# From then on, run as unprivileged "app" user
# Note that this must always be different from root (APP_USER_ID=0)
ARG APP_USER_ID=1000
ARG APP_USER_ID=1001
RUN if [ "$APP_USER_ID" = 0 ]; then echo "app user may not be root" && false; fi
RUN useradd --no-log-init --home-dir /openedx --create-home --shell /bin/bash --uid ${APP_USER_ID} app
USER ${APP_USER_ID}
Expand Down

0 comments on commit 89219b1

Please sign in to comment.