From 51751e6e56b5b86b58ddfb2e2c849577c8175e3e Mon Sep 17 00:00:00 2001 From: Hunia Fatima Date: Mon, 18 Nov 2024 17:34:06 +0500 Subject: [PATCH] chore: remove dockerfile setup (#15) * chore: remove dockerfile, dockerignore and image-push workflow * chore: removed targets from Makefile --- .dockerignore | 127 ----------------------- .github/workflows/push-docker-images.yml | 49 --------- Dockerfile | 101 ------------------ Makefile | 15 --- 4 files changed, 292 deletions(-) delete mode 100644 .dockerignore delete mode 100644 .github/workflows/push-docker-images.yml delete mode 100644 Dockerfile diff --git a/.dockerignore b/.dockerignore deleted file mode 100644 index 67fa66ce..00000000 --- a/.dockerignore +++ /dev/null @@ -1,127 +0,0 @@ -# .dockerignore for registrar. -# There's a lot here, please try to keep it organized. - -Dockerfile - -### Files that are not needed in the docker file - -/test_root/ -.git* -.github* - -### Editor and IDE artifacts -**/*~ -**/*.swp -**/*.orig -**/nbproject -**/.idea/ -**/.redcar/ -**/codekit-config.json -**/.pycharm_helpers/ -**/_mac/* -**/IntelliLang.xml -**/conda_packages.xml -**/databaseSettings.xml -**/diff.xml -**/debugger.xml -**/editor.xml -**/ide.general.xml -**/inspection/Default.xml -**/other.xml -**/packages.xml -**/web-browsers.xml - -### NFS artifacts -**/.nfs* - -### OS X artifacts -**/*.DS_Store -**/.AppleDouble -**/:2e_* -**/:2e# - -### Internationalization artifacts -**/*.mo -**/*.po -**/*.prob -**/*.dup -!**/django.po -!**/django.mo -!**/djangojs.po -!**/djangojs.mo -conf/locale/en/LC_MESSAGES/*.mo -conf/locale/fake*/LC_MESSAGES/*.po -conf/locale/fake*/LC_MESSAGES/*.mo - -### Testing artifacts -**/.testids/ -**/.noseids -**/nosetests.xml -**/.cache/ -**/.coverage -**/.coverage.* -**/coverage.xml -**/cover/ -**/cover_html/ -**/reports/ -**/jscover.log -**/jscover.log.* -**/.pytest_cache/ -**/pytest_task*.txt -**/.tddium* -common/test/data/test_unicode/static/ -test_root/courses/ -test_root/data/test_bare.git/ -test_root/export_course_repos/ -test_root/paver_logs/ -test_root/uploads/ -**/django-pyfs -**/.tox/ -common/test/data/badges/*.png - -### Installation artifacts -**/*.egg-info -**/.pip_download_cache/ -**/.prereqs_cache -**/.vagrant/ -**/node_modules -**/bin/ - -### Static assets pipeline artifacts -**/*.scssc -common/static/common/js/vendor/ -common/static/common/css/vendor/ -common/static/bundles -**/webpack-stats.json - -### Styling generated from templates -themes/**/css - -### Logging artifacts -**/log/ -**/logs -**/chromedriver.log -**/ghostdriver.log - -### Celery artifacts ### -**/celerybeat-schedule - -### Unknown artifacts -**/database.sqlite -**/courseware/static/js/mathjax/* -**/flushdb.sh -**/build -/src/ -\#*\# -**/.env/ -openedx/core/djangoapps/django_comment_common/comment_client/python -**/autodeploy.properties -**/.ws_migrations_complete -**/dist -**/*.bak - -# Visual Studio Code -**/.vscode - -# Locally generated PII reports -**/pii_report diff --git a/.github/workflows/push-docker-images.yml b/.github/workflows/push-docker-images.yml deleted file mode 100644 index 189a1cf0..00000000 --- a/.github/workflows/push-docker-images.yml +++ /dev/null @@ -1,49 +0,0 @@ -name: Build and Push Docker Images - -on: - push: - branches: - - master - - open-release/** - -jobs: - push: - runs-on: ubuntu-latest - - steps: - - name: Checkout - uses: actions/checkout@v3 - - # Use the release name as the image tag if we're building an open release branch. - # Examples: if we're building 'open-release/maple.master', tag the image as 'maple.master'. - # Otherwise, we must be building from a push to master, so use 'latest'. - - name: Get tag name - id: get-tag-name - uses: actions/github-script@v5 - with: - script: | - const branchName = context.ref.split('/').slice(-1)[0]; - const tagName = branchName === 'master' ? 'latest' : branchName; - console.log('Will use tag: ' + tagName); - return tagName; - result-encoding: string - - - name: Build and push Dev Docker image - uses: docker/build-push-action@v1 - with: - push: true - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_PASSWORD }} - target: dev - repository: edxops/registrar-dev - tags: ${{ steps.get-tag-name.outputs.result }},${{ github.sha }} - - # - name: Build and push prod Docker image - # uses: docker/build-push-action@v1 - # with: - # push: true - # username: ${{ secrets.DOCKERHUB_USERNAME }} - # password: ${{ secrets.DOCKERHUB_PASSWORD }} - # target: prod - # repository: edxops/registrar - # tags: ${{ steps.get-tag-name.outputs.result }},${{ github.sha }} diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 092793c2..00000000 --- a/Dockerfile +++ /dev/null @@ -1,101 +0,0 @@ -FROM ubuntu:focal as app - -# 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 - -# System requirements. -RUN apt-get update -RUN DEBIAN_FRONTEND=noninteractive apt-get install -qy \ - git-core \ - language-pack-en \ - build-essential \ - # libmysqlclient-dev header files needed to use native C implementation for MySQL-python for performance gains. - libmysqlclient-dev \ - # mysqlclient wont install without libssl-dev - libssl-dev \ - # mysqlclient>=2.2.0 requires pkg-config (https://github.com/PyMySQL/mysqlclient/issues/620) - pkg-config \ - curl \ - python3-pip \ - python${PYTHON_VERSION} \ - python${PYTHON_VERSION}-dev \ - python${PYTHON_VERSION}-distutils - -# need to use virtualenv pypi package with Python 3.12 -RUN pip install --upgrade pip setuptools -RUN curl -sS https://bootstrap.pypa.io/get-pip.py | python${PYTHON_VERSION} -RUN pip install virtualenv - -# delete apt package lists because we do not need them inflating our image -RUN rm -rf /var/lib/apt/lists/* - -# Python is Python3. -RUN ln -s /usr/bin/python3 /usr/bin/python - -# Setup zoneinfo for Python 3.12 -RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone - -# Use UTF-8. -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 - -ARG COMMON_CFG_DIR="/edx/etc" -ARG COMMON_APP_DIR="/edx/app" -ARG REGISTRAR_APP_DIR="${COMMON_APP_DIR}/registrar" -ARG REGISTRAR_VENV_DIR="${COMMON_APP_DIR}/venvs/registrar" -ARG REGISTRAR_CODE_DIR="${REGISTRAR_APP_DIR}" - -ENV PATH="$REGISTRAR_VENV_DIR/bin:$PATH" -ENV REGISTRAR_APP_DIR ${REGISTRAR_APP_DIR} -ENV REGISTRAR_CODE_DIR ${REGISTRAR_CODE_DIR} - -COPY requirements ${REGISTRAR_CODE_DIR}/requirements - -# Working directory will be root of repo. -WORKDIR ${REGISTRAR_CODE_DIR} - -RUN virtualenv -p python${PYTHON_VERSION} --always-copy ${REGISTRAR_VENV_DIR} - -# Copy just Python requirements & install them. -COPY requirements ${REGISTRAR_CODE_DIR}/requirements - -ENV REGISTRAR_CFG="${COMMON_CFG_DIR}/registrar.yml" - -# Expose ports. -EXPOSE 18734 -EXPOSE 18735 - -FROM app as dev - -RUN pip install --no-cache-dir -r ${REGISTRAR_CODE_DIR}/requirements/devstack.txt - -# After the requirements so changes to the code will not bust the image cache -COPY . ${REGISTRAR_CODE_DIR}/ - -ENV DJANGO_SETTINGS_MODULE registrar.settings.devstack - -CMD while true; do python ./manage.py runserver 0.0.0.0:18734; sleep 2; done - -FROM app as prod - -RUN pip install --no-cache-dir -r ${REGISTRAR_CODE_DIR}/requirements/production.txt - -# After the requirements so changes to the code will not bust the image cache -COPY . ${REGISTRAR_CODE_DIR}/ - -ENV DJANGO_SETTINGS_MODULE registrar.settings.production - -# 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", "registrar", "-c", "/edx/app/registrar/registrar/docker_gunicorn_configuration.py", "--log-file", "-", "--max-requests=1000", "registrar.wsgi:application"] - - diff --git a/Makefile b/Makefile index 2e93f5b3..1d2fb67e 100644 --- a/Makefile +++ b/Makefile @@ -165,21 +165,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 commands - -docker_build: - docker build . --target app -t "openedx/registrar:latest" - -docker_auth: - echo "$$DOCKERHUB_PASSWORD" | docker login -u "$$DOCKERHUB_USERNAME" --password-stdin - -docker_tag: docker_build - docker build . --target app -t "openedx/registrar:${GITHUB_SHA}" - -docker_push: docker_tag docker_auth ## push to docker hub - docker push "openedx/registrar:latest" - docker push "openedx/registrar:${GITHUB_SHA}" - install_transifex_client: ## Install the Transifex client curl -o- https://raw.githubusercontent.com/transifex/cli/master/install.sh | bash git checkout -- LICENSE README.md