mirror of
https://github.com/spiral-project/ihatemoney.git
synced 2025-04-28 17:32:38 +02:00
Fix docker image and docker image test (#852)
* Github Action build and push to dockerhub * CI updates docker description * Convert rst readme to markdown * Update CONTRIBUTORS * Revert "CI updates docker description" This reverts commit33e2e7b5c2
. * Revert "Convert rst readme to markdown" This reverts commitdc25f8dbe4
. * CI deploy on master branch * CI test image * Fix empty SESSION_COOKIE_SECURE * Dockerfile : sanitize ENV * entrypoint.sh : sort * docker-compose.yml * CI test with docker compose * CI reorganize * Default SESSION_COOKIE_SECURE to True * Add some comments for readability. Co-authored-by: Alexis Métaireau <alexis@notmyidea.org>
This commit is contained in:
parent
a7d133bc3a
commit
ec0a3aa070
5 changed files with 82 additions and 26 deletions
18
.github/workflows/dockerhub.yml
vendored
18
.github/workflows/dockerhub.yml
vendored
|
@ -2,12 +2,26 @@ name: CI to Docker Hub
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
tags:
|
tags: ['*']
|
||||||
- '*'
|
branches: [ master ]
|
||||||
|
pull_request:
|
||||||
|
branches: [ master ]
|
||||||
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
test:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Test image # Checks we are able to run the container.
|
||||||
|
run: docker compose -f docker-compose.test.yml run sut
|
||||||
|
|
||||||
build:
|
build:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
needs: test
|
||||||
|
if: github.event_name != 'pull_request'
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
|
|
25
Dockerfile
25
Dockerfile
|
@ -1,22 +1,23 @@
|
||||||
FROM python:3.7-alpine
|
FROM python:3.7-alpine
|
||||||
|
|
||||||
ENV DEBUG="False" \
|
ENV DEBUG="False" \
|
||||||
SQLALCHEMY_DATABASE_URI="sqlite:////database/ihatemoney.db" \
|
ACTIVATE_ADMIN_DASHBOARD="False" \
|
||||||
SQLALCHEMY_TRACK_MODIFICATIONS="False" \
|
|
||||||
SECRET_KEY="tralala" \
|
|
||||||
MAIL_DEFAULT_SENDER="('Budget manager', 'budget@notmyidea.org')" \
|
|
||||||
MAIL_SERVER="localhost" \
|
|
||||||
MAIL_PORT=25 \
|
|
||||||
MAIL_USE_TLS=False \
|
|
||||||
MAIL_USE_SSL=False \
|
|
||||||
MAIL_USERNAME= \
|
|
||||||
MAIL_PASSWORD= \
|
|
||||||
ACTIVATE_DEMO_PROJECT="True" \
|
ACTIVATE_DEMO_PROJECT="True" \
|
||||||
ADMIN_PASSWORD="" \
|
ADMIN_PASSWORD="" \
|
||||||
ALLOW_PUBLIC_PROJECT_CREATION="True" \
|
ALLOW_PUBLIC_PROJECT_CREATION="True" \
|
||||||
ACTIVATE_ADMIN_DASHBOARD="False" \
|
|
||||||
BABEL_DEFAULT_TIMEZONE="UTC" \
|
BABEL_DEFAULT_TIMEZONE="UTC" \
|
||||||
GREENLET_TEST_CPP="no"
|
GREENLET_TEST_CPP="no" \
|
||||||
|
MAIL_DEFAULT_SENDER="('Budget manager', 'budget@notmyidea.org')" \
|
||||||
|
MAIL_PASSWORD="" \
|
||||||
|
MAIL_PORT="25" \
|
||||||
|
MAIL_SERVER="localhost" \
|
||||||
|
MAIL_USE_SSL="False" \
|
||||||
|
MAIL_USE_TLS="False" \
|
||||||
|
MAIL_USERNAME="" \
|
||||||
|
SECRET_KEY="tralala" \
|
||||||
|
SESSION_COOKIE_SECURE="True" \
|
||||||
|
SQLALCHEMY_DATABASE_URI="sqlite:////database/ihatemoney.db" \
|
||||||
|
SQLALCHEMY_TRACK_MODIFICATIONS="False"
|
||||||
|
|
||||||
RUN mkdir -p /etc/ihatemoney &&\
|
RUN mkdir -p /etc/ihatemoney &&\
|
||||||
pip install --no-cache-dir gunicorn pymysql;
|
pip install --no-cache-dir gunicorn pymysql;
|
||||||
|
|
|
@ -5,23 +5,23 @@ set -e
|
||||||
|
|
||||||
cat <<EOF > /etc/ihatemoney/ihatemoney.cfg
|
cat <<EOF > /etc/ihatemoney/ihatemoney.cfg
|
||||||
DEBUG = $DEBUG
|
DEBUG = $DEBUG
|
||||||
SQLALCHEMY_DATABASE_URI = "$SQLALCHEMY_DATABASE_URI"
|
ACTIVATE_ADMIN_DASHBOARD = $ACTIVATE_ADMIN_DASHBOARD
|
||||||
SQLACHEMY_DEBUG = DEBUG
|
|
||||||
SQLALCHEMY_TRACK_MODIFICATIONS = $SQLALCHEMY_TRACK_MODIFICATIONS
|
|
||||||
SECRET_KEY = "$SECRET_KEY"
|
|
||||||
MAIL_SERVER = "$MAIL_SERVER"
|
|
||||||
MAIL_PORT = $MAIL_PORT
|
|
||||||
MAIL_USE_TLS = $MAIL_USE_TLS
|
|
||||||
MAIL_USE_SSL = $MAIL_USE_SSL
|
|
||||||
MAIL_USERNAME = "$MAIL_USERNAME"
|
|
||||||
MAIL_PASSWORD = "$MAIL_PASSWORD"
|
|
||||||
MAIL_DEFAULT_SENDER = "$MAIL_DEFAULT_SENDER"
|
|
||||||
ACTIVATE_DEMO_PROJECT = $ACTIVATE_DEMO_PROJECT
|
ACTIVATE_DEMO_PROJECT = $ACTIVATE_DEMO_PROJECT
|
||||||
ADMIN_PASSWORD = '$ADMIN_PASSWORD'
|
ADMIN_PASSWORD = '$ADMIN_PASSWORD'
|
||||||
ALLOW_PUBLIC_PROJECT_CREATION = $ALLOW_PUBLIC_PROJECT_CREATION
|
ALLOW_PUBLIC_PROJECT_CREATION = $ALLOW_PUBLIC_PROJECT_CREATION
|
||||||
ACTIVATE_ADMIN_DASHBOARD = $ACTIVATE_ADMIN_DASHBOARD
|
|
||||||
BABEL_DEFAULT_TIMEZONE = "$BABEL_DEFAULT_TIMEZONE"
|
BABEL_DEFAULT_TIMEZONE = "$BABEL_DEFAULT_TIMEZONE"
|
||||||
|
MAIL_DEFAULT_SENDER = "$MAIL_DEFAULT_SENDER"
|
||||||
|
MAIL_PASSWORD = "$MAIL_PASSWORD"
|
||||||
|
MAIL_PORT = $MAIL_PORT
|
||||||
|
MAIL_SERVER = "$MAIL_SERVER"
|
||||||
|
MAIL_USE_SSL = $MAIL_USE_SSL
|
||||||
|
MAIL_USE_TLS = $MAIL_USE_TLS
|
||||||
|
MAIL_USERNAME = "$MAIL_USERNAME"
|
||||||
|
SECRET_KEY = "$SECRET_KEY"
|
||||||
SESSION_COOKIE_SECURE = $SESSION_COOKIE_SECURE
|
SESSION_COOKIE_SECURE = $SESSION_COOKIE_SECURE
|
||||||
|
SQLACHEMY_DEBUG = DEBUG
|
||||||
|
SQLALCHEMY_DATABASE_URI = "$SQLALCHEMY_DATABASE_URI"
|
||||||
|
SQLALCHEMY_TRACK_MODIFICATIONS = $SQLALCHEMY_TRACK_MODIFICATIONS
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
# Start gunicorn without forking
|
# Start gunicorn without forking
|
||||||
|
|
13
docker-compose.test.yml
Normal file
13
docker-compose.test.yml
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
# This is used by Github actions to ensure docker images build properly.
|
||||||
|
version: "3.9"
|
||||||
|
|
||||||
|
services:
|
||||||
|
ihatemoney:
|
||||||
|
build: .
|
||||||
|
ports:
|
||||||
|
- "8000:8000"
|
||||||
|
sut:
|
||||||
|
image: alpine
|
||||||
|
command: wget --spider ihatemoney:8000
|
||||||
|
depends_on:
|
||||||
|
- ihatemoney
|
28
docker-compose.yml
Normal file
28
docker-compose.yml
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
# This is an example. Please change the configuration variables listed here.
|
||||||
|
|
||||||
|
version: "3.9"
|
||||||
|
|
||||||
|
services:
|
||||||
|
ihatemoney:
|
||||||
|
build: .
|
||||||
|
environment:
|
||||||
|
- DEBUG=False
|
||||||
|
- ACTIVATE_ADMIN_DASHBOARD=False
|
||||||
|
- ACTIVATE_DEMO_PROJECT=True
|
||||||
|
- ADMIN_PASSWORD=
|
||||||
|
- ALLOW_PUBLIC_PROJECT_CREATION=True
|
||||||
|
- BABEL_DEFAULT_TIMEZONE=UTC
|
||||||
|
- GREENLET_TEST_CPP=no
|
||||||
|
- MAIL_DEFAULT_SENDER=('Budget manager', 'budget@notmyidea.org')
|
||||||
|
- MAIL_PASSWORD=
|
||||||
|
- MAIL_PORT=25
|
||||||
|
- MAIL_SERVER=localhost
|
||||||
|
- MAIL_USE_SSL=False
|
||||||
|
- MAIL_USE_TLS=False
|
||||||
|
- MAIL_USERNAME=
|
||||||
|
- SECRET_KEY=tralala
|
||||||
|
- SESSION_COOKIE_SECURE=True
|
||||||
|
- SQLALCHEMY_DATABASE_URI=sqlite:////database/ihatemoney.db
|
||||||
|
- SQLALCHEMY_TRACK_MODIFICATIONS=False
|
||||||
|
ports:
|
||||||
|
- "8000:8000"
|
Loading…
Reference in a new issue