Skip to content
Snippets Groups Projects
Commit 3e4788f1 authored by benoit-cty's avatar benoit-cty
Browse files

Add docker

parent 2e5ac2c3
No related branches found
No related tags found
1 merge request!1Fix deploy
.env 0 → 100644
# Warning : docker-compose does not support comment at the end of the line !!!
# Your database username
DATABASE_USER=datacirco
# Your database password
DATABASE_PASS=datacirco
# Your database host
DATABASE_HOST=postgres_datacirco
# Your database port
DATABASE_PORT=5432
# Your database name
DATABASE_NAME=infocirco
## Backup base
`pg_dump -Fc --clean --create -d infocirco > datacirco_full-`date +%F`.dump`
```
pg_dump -Fc --clean --create -d infocirco > datacirco_full-`date +%F`.dump
```
_-Fc_ is for compressed custom output.
__Attention__ : taille de la base XXX Go !
## Création d'un environnement Docker pour recevoir la base
```
docker-compose up
```
Dans un autre terminal :
```
docker exec -it postgres_datacirco bash
psql -U $POSTGRES_USER -d $POSTGRES_DB -c 'CREATE EXTENSION IF NOT EXISTS postgis;'
psql -U $POSTGRES_USER -d $POSTGRES_DB -c 'CREATE EXTENSION IF NOT EXISTS tablefunc;'
```
## Import base
Si vous utilisez Docker, copier le fichier dans le conteneur Postgresql et s'y connecter :
```
docker cp datacirco_full-*.dump postgres_datacirco:/tmp
docker exec -it postgres_datacirco bash
```
Importer les données dans la base :
```
pg_restore -d postgres --clean --create datacirco_full-`date +%F`.dump
pg_restore -U datacirco -d infocirco --clean --create /tmp/datacirco_full-*.dump
```
\ No newline at end of file
version: '3.7'
services:
datacirco:
build:
context: .
dockerfile: ./docker/Dockerfile
networks:
- leximpact_net
environment:
DATABASE_USER: ${DATABASE_USER}
DATABASE_PASS: ${DATABASE_PASS}
DATABASE_PORT: ${DATABASE_PORT}
DATABASE_NAME: ${DATABASE_NAME}
DATABASE_HOST: ${DATABASE_HOST:-postgres_datacirco}
volumes:
- .:/opt/leximpact-server
depends_on:
- postgres
postgres:
container_name: ${DATABASE_HOST:-postgres_datacirco}
environment:
HOSTNAME: ${DATABASE_HOST:-postgres_datacirco}
POSTGRES_DB: ${DATABASE_NAME:-infocirco}
POSTGRES_PASSWORD: ${DATABASE_PASS:-datacirco}
POSTGRES_USER: ${DATABASE_USER:-datacirco}
image: postgis/postgis:14-master
networks:
- leximpact_net
ports:
- 5479:5432
restart: unless-stopped
volumes:
- postgres_data:/var/lib/postgresql/data:rw
pgadmin:
container_name: pgadmin_datacirco
image: dpage/pgadmin4
environment:
PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL:-test@test.com}
PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD:-test}
volumes:
- pgadmin:/root/.pgadmin
- ./docker/pgpassfile:/pgadmin4/pgpassfile
- ./docker/pgadmin-servers.json:/pgadmin4/servers.json
ports:
- "${PGADMIN_PORT:-5050}:80"
networks:
- leximpact_net
restart: unless-stopped
volumes:
postgres_data:
name: postgres_leximpact_datacirco
pgadmin:
name: pgadmin_leximpact_datacirco
networks:
leximpact_net:
name: leximpact_network_datacirco
\ No newline at end of file
FROM ubuntu:20.04
WORKDIR /opt
RUN apt-get update && apt-get -y install gnupg2 wget nano git curl csvkit python3.8-venv python3-wheel python3-pip libcairo2-dev pkg-config python3-dev p7zip-full jq gdal-bin parallel postgresql-client
# RUN apt-get -y install texlive-xetex optipng imagemagick-6.q16hdri texlive-lang-french
WORKDIR /opt/datacirco
# Tips : relative path is from root project folder as we use context in docker-compose
#COPY ./docker/.env.docker .env
COPY requirements.txt .
# TODO : For unknown reseon we have to intall numpy to make "Building wheel for tables (setup.py)" work
# Despite it exist in dependancies.
RUN pip install -U -r requirements.txt
#COPY entrypoint.sh .
#RUN chmod a+x entrypoint.sh
EXPOSE 5000
ENTRYPOINT ["/opt/datacirco/docker/entrypoint.sh"]
\ No newline at end of file
#!/bin/bash
cd /opt/datacirco
set -e
sleep 1
echo "$DATABASE_USER@$DATABASE_HOST:$DATABASE_PORT"
until PGPASSWORD=$DATABASE_PASS psql -h "$DATABASE_HOST" -U "$DATABASE_USER" -p "$DATABASE_PORT" -d "$DATABASE_NAME" -c '\q'; do
>&2 echo "Postgres is unavailable - sleeping"
sleep 1
done
>&2 echo "Postgres is up !"
bash makepdf.sh 001-05
\ No newline at end of file
{
"Servers": {
"1": {
"Name": "DataCirco LexImpact Docker",
"Group": "Servers",
"Host": "postgres_datacirco",
"Port": 5432,
"MaintenanceDB": "postgres",
"Username": "datacirco",
"PassFile": "/pgadmin4/pgpassfile",
"SSLMode": "prefer",
"SSLCert": "<STORAGE_DIR>/.postgresql/postgresql.crt",
"SSLKey": "<STORAGE_DIR>/.postgresql/postgresql.key",
"SSLCompression": 0,
"Timeout": 10,
"UseSSHTunnel": 0,
"TunnelPort": "22",
"TunnelAuthentication": 0
}
}
}
\ No newline at end of file
postgres_leximpact:5432:postgres:leximpact-user:1234leximpact
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment