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 commit 33e2e7b5c2.

* Revert "Convert rst readme to markdown"

This reverts commit dc25f8dbe4.

* 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:
Youe Graillot 2021-10-17 14:21:42 +00:00 committed by GitHub
parent a7d133bc3a
commit ec0a3aa070
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 82 additions and 26 deletions

View file

@ -2,12 +2,26 @@ name: CI to Docker Hub
on:
push:
tags:
- '*'
tags: ['*']
branches: [ master ]
pull_request:
branches: [ master ]
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:
runs-on: ubuntu-latest
needs: test
if: github.event_name != 'pull_request'
steps:
- name: Checkout
uses: actions/checkout@v2

View file

@ -1,22 +1,23 @@
FROM python:3.7-alpine
ENV DEBUG="False" \
SQLALCHEMY_DATABASE_URI="sqlite:////database/ihatemoney.db" \
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_ADMIN_DASHBOARD="False" \
ACTIVATE_DEMO_PROJECT="True" \
ADMIN_PASSWORD="" \
ALLOW_PUBLIC_PROJECT_CREATION="True" \
ACTIVATE_ADMIN_DASHBOARD="False" \
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 &&\
pip install --no-cache-dir gunicorn pymysql;

View file

@ -5,23 +5,23 @@ set -e
cat <<EOF > /etc/ihatemoney/ihatemoney.cfg
DEBUG = $DEBUG
SQLALCHEMY_DATABASE_URI = "$SQLALCHEMY_DATABASE_URI"
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_ADMIN_DASHBOARD = $ACTIVATE_ADMIN_DASHBOARD
ACTIVATE_DEMO_PROJECT = $ACTIVATE_DEMO_PROJECT
ADMIN_PASSWORD = '$ADMIN_PASSWORD'
ALLOW_PUBLIC_PROJECT_CREATION = $ALLOW_PUBLIC_PROJECT_CREATION
ACTIVATE_ADMIN_DASHBOARD = $ACTIVATE_ADMIN_DASHBOARD
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
SQLACHEMY_DEBUG = DEBUG
SQLALCHEMY_DATABASE_URI = "$SQLALCHEMY_DATABASE_URI"
SQLALCHEMY_TRACK_MODIFICATIONS = $SQLALCHEMY_TRACK_MODIFICATIONS
EOF
# Start gunicorn without forking

13
docker-compose.test.yml Normal file
View 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
View 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"