From 658705f435da350bb44a59a9942b2b79edf1dc56 Mon Sep 17 00:00:00 2001 From: Jamie Diprose <5715104+jdddog@users.noreply.github.com> Date: Tue, 20 Jun 2023 08:28:07 +1200 Subject: [PATCH] Fix issues with Docker and remove unneeded code (#622) --- .../docker/Dockerfile.apiserver.jinja2 | 2 +- .../platform/docker/Dockerfile.seed_db.jinja2 | 67 ------------------- .../platform/docker/platform_runner.py | 2 - .../platform/docker/seed_db.sh.jinja2 | 28 -------- .../observatory/platform/terraform/build.sh | 1 + 5 files changed, 2 insertions(+), 98 deletions(-) delete mode 100644 observatory-platform/observatory/platform/docker/Dockerfile.seed_db.jinja2 delete mode 100644 observatory-platform/observatory/platform/docker/seed_db.sh.jinja2 diff --git a/observatory-platform/observatory/platform/docker/Dockerfile.apiserver.jinja2 b/observatory-platform/observatory/platform/docker/Dockerfile.apiserver.jinja2 index 49628e0ed..97dd8fbda 100644 --- a/observatory-platform/observatory/platform/docker/Dockerfile.apiserver.jinja2 +++ b/observatory-platform/observatory/platform/docker/Dockerfile.apiserver.jinja2 @@ -14,7 +14,7 @@ # Author: Tuan Chien -FROM python:3.9-slim +FROM python:3.9.16-bullseye ARG HOST_USER_ID ARG OBSERVATORY_HOME=/opt/observatory diff --git a/observatory-platform/observatory/platform/docker/Dockerfile.seed_db.jinja2 b/observatory-platform/observatory/platform/docker/Dockerfile.seed_db.jinja2 deleted file mode 100644 index 02d3160db..000000000 --- a/observatory-platform/observatory/platform/docker/Dockerfile.seed_db.jinja2 +++ /dev/null @@ -1,67 +0,0 @@ -# Copyright 2020 Curtin University -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# Author: Tuan Chien - -FROM python:3.9-slim - -ARG HOST_USER_ID -ARG OBSERVATORY_HOME=/opt/observatory -ARG INSTALL_USER=apiserver -ENV PATH="$PATH:/home/${INSTALL_USER}/.local/bin/" - -RUN adduser ${INSTALL_USER} -USER root -RUN apt-get update -yqq -RUN apt-get install -y git python3-pip postgresql-client-13 gunicorn procps netcat -RUN usermod -u ${HOST_USER_ID} ${INSTALL_USER} -USER ${INSTALL_USER} - -# Clean up default installed Python packages -RUN python -m pip install --upgrade pip -RUN pip cache purge - -# Install dependencies for all projects -{% for package in config.python_packages %} -{% if package.name != 'observatory-platform' %} -# Set working directory for {{ package.name }} -ARG WORKING_DIR=/opt/{{ package.name }} -WORKDIR ${WORKING_DIR} - -# Change owner of directory to airflow -USER root -RUN chown -R ${INSTALL_USER} ${WORKING_DIR} -USER ${INSTALL_USER} - -{% set install_deps=false %} -{% if package.name == 'observatory-api' %} -{% set install_deps=true %} -{% endif %} - -{% include 'Dockerfile.package_install.jinja2' %} - -# Set working directory back to airflow home -WORKDIR ${OBSERVATORY_HOME} -{% endif %} -{% endfor %} - -# Copy entry point scripts which install new dependencies at runtime and the Observatory Platform Python package -USER root - -COPY seed_db.sh /seed_db.sh -RUN chmod +x /seed_db.sh -RUN chown -R ${INSTALL_USER} /opt/observatory - -USER ${INSTALL_USER} -ENTRYPOINT ["/seed_db.sh"] diff --git a/observatory-platform/observatory/platform/docker/platform_runner.py b/observatory-platform/observatory/platform/docker/platform_runner.py index f59add3fd..b538b7643 100644 --- a/observatory-platform/observatory/platform/docker/platform_runner.py +++ b/observatory-platform/observatory/platform/docker/platform_runner.py @@ -63,12 +63,10 @@ def __init__(self, *, config: Config, host_uid: int = HOST_UID, docker_build_pat path=os.path.join(self.docker_module_path, "entrypoint-airflow.sh.jinja2"), config=self.config ) self.add_template(path=os.path.join(self.docker_module_path, "Dockerfile.apiserver.jinja2"), config=self.config) - self.add_template(path=os.path.join(self.docker_module_path, "Dockerfile.seed_db.jinja2"), config=self.config) self.add_template(path=os.path.join(self.docker_module_path, "entrypoint-api.sh.jinja2"), config=self.config) self.add_file( path=os.path.join(self.docker_module_path, "entrypoint-root.sh"), output_file_name="entrypoint-root.sh" ) - self.add_template(path=os.path.join(self.docker_module_path, "seed_db.sh.jinja2"), config=self.config) # Add all project requirements files for local projects for package in self.config.python_packages: diff --git a/observatory-platform/observatory/platform/docker/seed_db.sh.jinja2 b/observatory-platform/observatory/platform/docker/seed_db.sh.jinja2 deleted file mode 100644 index 7718cddbd..000000000 --- a/observatory-platform/observatory/platform/docker/seed_db.sh.jinja2 +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash -set -x - -######################################## -# Install editable mode Python packages -######################################## - -{% for package in config.python_packages %} -{% if package.name != 'observatory-platform' %} -{% if package.type == 'editable' -%} -cd /opt/{{ package.name }} -export PBR_VERSION=0.0.1 -pip3 install {{ "--no-deps" if package.name != 'observatory-api' }} -e . --user -unset PBR_VERSION -{% endif %} -{% endif %} -{% endfor %} - -{% for package in config.python_packages %} -{% if package.name != 'observatory-platform' and package.name != 'observatory-api' %} -# Call the command for seeding the database -echo "Seeding {{ package.name }}" -{{ package.name }}-seed -{% endif %} -{% endfor %} - -echo "Staying alive for debug" -tail -f /dev/null diff --git a/observatory-platform/observatory/platform/terraform/build.sh b/observatory-platform/observatory/platform/terraform/build.sh index 1c384109c..4abb3875f 100644 --- a/observatory-platform/observatory/platform/terraform/build.sh +++ b/observatory-platform/observatory/platform/terraform/build.sh @@ -4,6 +4,7 @@ echo " ----- Sleeping for 30 seconds as per Packer documentation ----- " sleep 30 echo " ----- Install Docker and Docker Compose V2 (using apt-get) ----- " +sudo apt-get update sudo apt-get -y install ca-certificates curl gnupg lsb-release sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg