diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml deleted file mode 100644 index 0452cf2..0000000 --- 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 1f2fb52..0000000 --- a/Dockerfile +++ /dev/null @@ -1,115 +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 - -# pkg-config -# mysqlclient>=2.2.0 requires this (https://github.com/PyMySQL/mysqlclient/issues/620) - -# libmysqlclient-dev; to install header files needed to use native C implementation for -# MySQL-python for performance gains. - -# 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 - -# git; necessary to install local python packages in editable mode via pip. It's got electrolytes. - -# make; we use makefiles for all sorts of stuff - -# 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 \ - pkg-config \ - libmysqlclient-dev \ - libssl-dev \ - gcc \ - git \ - make \ - curl \ - libffi-dev \ - libsqlite3-dev \ - 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 - -# 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 a virtualenv for sanity -ENV VIRTUAL_ENV=/edx/venvs/enterprise-subsidy -RUN virtualenv -p python${PYTHON_VERSION} $VIRTUAL_ENV -ENV PATH="$VIRTUAL_ENV/bin:$PATH" - -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 enterprise_subsidy.settings.production - -EXPOSE 18280 -RUN useradd -m --shell /bin/false app - -WORKDIR /edx/app/enterprise-subsidy - -# 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/enterprise-subsidy/requirements/production.txt -COPY requirements/pip.txt /edx/app/enterprise-subsidy/requirements/pip.txt - -# Dependencies are installed as root so they cannot be modified by the application user. -RUN pip install -r requirements/pip.txt -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 enterprise-subsidy -c /edx/app/enterprise-subsidy/enterprise_subsidy/docker_gunicorn_configuration.py --log-file - --max-requests=1000 enterprise_subsidy.wsgi:application - -# This line is after the requirements so that changes to the code will not -# bust the image cache -COPY . /edx/app/enterprise-subsidy - -FROM app as newrelic -RUN pip install newrelic -CMD gunicorn --workers=2 --name enterprise-subsidy -c /edx/app/enterprise-subsidy/enterprise_subsidy/docker_gunicorn_configuration.py --log-file - --max-requests=1000 enterprise_subsidy.wsgi:application - -FROM app as devstack -USER root -COPY requirements/dev.txt /edx/app/enterprise-subsidy/requirements/dev.txt -RUN pip install -r requirements/dev.txt -USER app -CMD gunicorn --workers=2 --name enterprise-subsidy -c /edx/app/enterprise-subsidy/enterprise_subsidy/docker_gunicorn_configuration.py --log-file - --max-requests=1000 enterprise_subsidy.wsgi:application diff --git a/Makefile b/Makefile index 6627ce2..4935fee 100644 --- a/Makefile +++ b/Makefile @@ -163,9 +163,6 @@ detect_changed_source_translations: ## check if translation files are up-to-date 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/enterprise-subsidy --no-cache - # devstack-themed shortcuts dev.up: dev.up.redis docker-compose up -d @@ -242,19 +239,9 @@ app-restart-devserver: # restart just the app Django dev server %-attach: docker attach enterprise-subsidy.$* -github_docker_build: - docker build . -f Dockerfile --target app -t openedx/enterprise-subsidy - -github_docker_tag: github_docker_build - docker tag openedx/enterprise-subsidy openedx/enterprise-subsidy:${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/enterprise-subsidy:latest' - docker push "openedx/enterprise-subsidy:${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 2d9f258..c4e96f4 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -21,12 +21,7 @@ services: command: memcached -vv app: - # Uncomment this line to use the official enterprise-subsidy base image - # image: openedx/enterprise-subsidy - image: openedx/enterprise-subsidy:latest-devstack - build: - context: . - dockerfile: Dockerfile + image: edxops/enterprise-subsidy-dev container_name: enterprise-subsidy.app volumes: - .:/edx/app/enterprise-subsidy