From f9939dba53b2ed73ac0c7ab7402f08866770ea70 Mon Sep 17 00:00:00 2001 From: Usama Sadiq Date: Thu, 5 Dec 2024 18:50:06 +0500 Subject: [PATCH] build: remove Dockerfile and related config --- .github/workflows/docker-publish.yml | 22 ------ Dockerfile | 102 --------------------------- Makefile | 32 --------- docker-compose.yml | 2 +- provision-edx-exams.sh | 2 +- 5 files changed, 2 insertions(+), 158 deletions(-) delete mode 100644 .github/workflows/docker-publish.yml delete mode 100644 Dockerfile diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml deleted file mode 100644 index 0452cf22..00000000 --- a/.github/workflows/docker-publish.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: Push Docker Images - -on: - push: - branches: - - main -jobs: - # Push image to GitHub Packages. - # See also https://docs.docker.com/docker-hub/builds/ - push: - runs-on: ubuntu-latest - if: github.event_name == 'push' - - steps: - - name: Checkout - uses: actions/checkout@v2 - - - name: Build and Push docker image - env: - DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }} - DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} - run : make github_docker_push diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 8d2bdc03..00000000 --- a/Dockerfile +++ /dev/null @@ -1,102 +0,0 @@ -FROM ubuntu:focal as app -MAINTAINER sre@edx.org - - -# Packages installed: - -# language-pack-en locales; ubuntu locale support so that system utilities have a consistent -# language and time zone. - -# python; ubuntu doesnt ship with python, so this is the python we will use to run the application - -# python3-pip; install pip to install application requirements.txt files - -# libmysqlclient-dev; to install header files needed to use native C implementation for -# MySQL-python for performance gains. - -# pkg-config; mysqlclient>=2.2.0 requires pkg-config (https://github.com/PyMySQL/mysqlclient/issues/620) - -# libssl-dev; # mysqlclient wont install without this. - -# python3-dev; to install header files for python extensions; much wheel-building depends on this - -# gcc; for compiling python extensions distributed with python packages like mysql-client - -# make; necessary to provision the container - -# ENV variables for Python 3.12 support -ARG PYTHON_VERSION=3.12 -ENV TZ=UTC -ENV TERM=xterm-256color -ENV DEBIAN_FRONTEND=noninteractive - -# software-properties-common is needed to setup Python 3.12 env -RUN apt-get update && \ - apt-get install -y software-properties-common && \ - apt-add-repository -y ppa:deadsnakes/ppa - -# If you add a package here please include a comment above describing what it is used for -RUN apt-get update && apt-get -qy install --no-install-recommends \ - build-essential \ - language-pack-en \ - locales \ - libmysqlclient-dev \ - pkg-config \ - libssl-dev \ - gcc \ - make \ - git \ - curl \ - python3-pip \ - python${PYTHON_VERSION} \ - python${PYTHON_VERSION}-dev \ - python${PYTHON_VERSION}-distutils - -RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone - -RUN pip install --upgrade pip setuptools -# delete apt package lists because we do not need them inflating our image -RUN rm -rf /var/lib/apt/lists/* - -# need to use virtualenv pypi package with Python 3.12 -RUN curl -sS https://bootstrap.pypa.io/get-pip.py | python${PYTHON_VERSION} -RUN pip install virtualenv - -# Create virtual environment with Python 3.12 -ENV VIRTUAL_ENV=/edx/venvs/edx-exams -RUN virtualenv -p python${PYTHON_VERSION} $VIRTUAL_ENV -ENV PATH="$VIRTUAL_ENV/bin:$PATH" - -# python is python3 -RUN ln -s /usr/bin/python3 /usr/bin/python - -RUN locale-gen en_US.UTF-8 -ENV LANG en_US.UTF-8 -ENV LANGUAGE en_US:en -ENV LC_ALL en_US.UTF-8 -ENV DJANGO_SETTINGS_MODULE edx_exams.settings.production - -EXPOSE 18740 -RUN useradd -m --shell /bin/false app - -WORKDIR /edx/app/edx-exams - -# Copy the requirements explicitly even though we copy everything below -# this prevents the image cache from busting unless the dependencies have changed. -COPY requirements/production.txt /edx/app/edx-exams/requirements/production.txt - -# Dependencies are installed as root so they cannot be modified by the application user. -RUN pip install -r requirements/production.txt - -RUN mkdir -p /edx/var/log - -# Code is owned by root so it cannot be modified by the application user. -# So we copy it before changing users. -USER app - -# Gunicorn 19 does not log to stdout or stderr by default. Once we are past gunicorn 19, the logging to STDOUT need not be specified. -CMD gunicorn --workers=2 --name edx-exams -c /edx/app/edx-exams/edx_exams/docker_gunicorn_configuration.py --log-file - --max-requests=1000 edx_exams.wsgi:application - -# This line is after the requirements so that changes to the code will not -# bust the image cache -COPY . /edx/app/edx-exams diff --git a/Makefile b/Makefile index 6b17a108..4de2dedb 100644 --- a/Makefile +++ b/Makefile @@ -150,34 +150,15 @@ start-devstack: ## run a local development copy of the server open-devstack: ## open a shell on the server started by start-devstack docker exec -it edx_exams /edx/app/edx-exams/devstack.sh open -pkg-devstack: ## build the edx_exams image from the latest configuration and code - docker build -t edx_exams:latest -f docker/build/edx-exams/Dockerfile git://github.com/edx/configuration - detect_changed_source_translations: ## check if translation files are up-to-date cd edx_exams && i18n_tool changed validate_translations: fake_translations detect_changed_source_translations ## install fake translations and check if translation files are up-to-date -docker_build: - docker build . -f Dockerfile -t openedx/edx_exams - -travis_docker_tag: docker_build - docker tag openedx/edx_exams openedx/edx_exams:$$TRAVIS_COMMIT - -travis_docker_auth: - echo "$$DOCKER_PASSWORD" | docker login -u "$$DOCKER_USERNAME" --password-stdin - -travis_docker_push: travis_docker_tag travis_docker_auth ## push to docker hub - docker push 'openedx/edx_exams:latest' - docker push "openedx/edx_exams:$$TRAVIS_COMMIT" - # devstack-themed shortcuts dev.up: # Starts all containers docker-compose up -d -dev.up.build: - docker-compose up -d --build - dev.down: # Kills containers and all of their data that isn't in volumes docker-compose down @@ -199,18 +180,5 @@ db-shell: # Run the app shell as root, enter the app's database %-attach: docker attach edx_exams.$* -github_docker_build: - docker build . -f Dockerfile --target app -t openedx/edx_exams - -github_docker_tag: github_docker_build - docker tag openedx/edx_exams openedx/edx_exams:${GITHUB_SHA} - -github_docker_auth: - echo "$$DOCKERHUB_PASSWORD" | docker login -u "$$DOCKERHUB_USERNAME" --password-stdin - -github_docker_push: github_docker_tag github_docker_auth ## push to docker hub - docker push 'openedx/edx_exams:latest' - docker push "openedx/edx_exams:${GITHUB_SHA}" - selfcheck: ## check that the Makefile is well-formed @echo "The Makefile is well-formed." diff --git a/docker-compose.yml b/docker-compose.yml index 40d181c9..26294945 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -19,7 +19,7 @@ services: app: # Uncomment this line to use the official edx_exams base image - image: openedx/edx_exams + image: edxops/edx_exams container_name: edx_exams.app volumes: diff --git a/provision-edx-exams.sh b/provision-edx-exams.sh index 100d57a9..586105d9 100644 --- a/provision-edx-exams.sh +++ b/provision-edx-exams.sh @@ -1,7 +1,7 @@ name="edx_exams" port="18740" -docker-compose up -d --build +docker-compose up -d # Install requirements # Can be skipped right now because we're using the --build flag on docker-compose. This will need to be changed once we move to devstack.