Skip to content

Commit

Permalink
Added production parameter recognition feature (#468)
Browse files Browse the repository at this point in the history
  • Loading branch information
Murat Ursavas committed Jan 30, 2023
1 parent 4b0e204 commit 7361f7c
Show file tree
Hide file tree
Showing 4 changed files with 78 additions and 15 deletions.
2 changes: 2 additions & 0 deletions .github/workflows/compile-docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,8 @@ jobs:
push: true
labels: ${{ steps.meta.outputs.labels }}
tags: ${{ steps.meta.outputs.tags }}
cache-from: type=registry,ref=nebraltd/hm-diag:buildcache
cache-to: type=registry,ref=nebraltd/hm-diag:buildcache,mode=max

- name: Image digest
run: echo ${{ steps.docker_build.outputs.digest }}
30 changes: 15 additions & 15 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,8 @@ WORKDIR /tmp/build
RUN \
install_packages \
build-essential \
libdbus-glib-1-dev

RUN pip3 install --no-cache-dir --target="$PYTHON_DEPENDENCIES_DIR" .
libdbus-glib-1-dev && \
pip3 install --no-cache-dir --target="$PYTHON_DEPENDENCIES_DIR" .

# firehose build, the tar is obtained from quectel.
# there is no install target in Makefile, doing manual copy
Expand Down Expand Up @@ -48,16 +47,6 @@ WORKDIR /opt/

# Import gpg key
COPY keys/manufacturing-key.gpg ./
RUN gpg --import manufacturing-key.gpg
RUN rm manufacturing-key.gpg

# @TODO: Re-enable health-check once Balena supports it fully.
# HEALTHCHECK \
# --interval=120s \
# --timeout=5s \
# --start-period=15s \
# --retries=10 \
# CMD wget -q -O - http://0.0.0.0:5000/initFile.txt || exit 1

# Copy packages from builder
COPY --from=builder "$PYTHON_DEPENDENCIES_DIR" "$PYTHON_DEPENDENCIES_DIR"
Expand All @@ -74,10 +63,21 @@ COPY --from=builder /tmp/build/alembic.ini /opt/migrations/alembic.ini

# copy start admin session script
COPY --from=builder /tmp/build/start_admin_session /usr/sbin/start_admin_session
RUN chmod 700 /usr/sbin/start_admin_session

# Getting RUN layers together
RUN gpg --import manufacturing-key.gpg && \
rm manufacturing-key.gpg && \
chmod 700 /usr/sbin/start_admin_session && \
mkdir -p /opt/nebra

# Add python dependencies to PYTHONPATH
ENV PYTHONPATH="${PYTHON_DEPENDENCIES_DIR}:${PYTHONPATH}"
ENV PATH="${PYTHON_DEPENDENCIES_DIR}/bin:${PATH}"

ENTRYPOINT ["gunicorn", "--bind", "0.0.0.0:5000", "--timeout", "300", "hw_diag.wsgi:wsgi_app"]
# Copy environment variables startup script
COPY setenv.sh /opt/nebra/setenv.sh

# Copy container startup script
COPY start.sh /opt/nebra/start.sh

ENTRYPOINT ["/opt/nebra/start.sh"]
55 changes: 55 additions & 0 deletions setenv.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
#!/bin/bash

# TODO remove below later
echo "SETENV started!"

base_path="/var/nebra/envvars"

# Create necessary folder if it doesn't exist
if [ ! -d $base_path ]; then
mkdir -p $base_path
fi

create_file_if_not_exists() {
local name="$1"
local contents="$2"
local fullpath="${base_path}/${name}"

if [ ! -f "${fullpath}" ]; then
echo "${name} parameter file doesn't exist. Setting it as ${contents} now.";
echo "${contents}" > "${fullpath}"
fi
}

export_param_if_not_exists() {
local name="$1"
local fullpath="${base_path}/${name}"

if [ -f "${fullpath}" ]; then
contents=$(<"${fullpath}");
export "${name}"="${contents}"
echo "${name} is set as ${contents}.";
else
echo "Error: Cannot set ${name} variable.";
fi
}

#FREQ
if [ -z ${FREQ+x} ]; then
export_param_if_not_exists FREQ
else
echo "FREQ variable is already set as ${FREQ}.";
create_file_if_not_exists FREQ "${FREQ}"
fi

#VARIANT
if [ -z ${VARIANT+x} ]; then
export_param_if_not_exists VARIANT
else
echo "VARIANT variable is already set as ${VARIANT}.";
create_file_if_not_exists VARIANT "${VARIANT}"
fi

# TODO remove below later
echo "SETENV finished!"

6 changes: 6 additions & 0 deletions start.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#! /bin/bash

# shellcheck source=/dev/null
source /opt/nebra/setenv.sh

gunicorn --bind 0.0.0.0:5000 --timeout 300 hw_diag.wsgi:wsgi_app

0 comments on commit 7361f7c

Please sign in to comment.