set docker
This commit is contained in:
parent
47d5ed77d5
commit
bcd17e1038
|
@ -20,8 +20,8 @@ docker run -d --add-host reload.example.com:127.0.0.1 -p 80:80 coudot/lemonldap-
|
|||
|
||||
Démarrer un serveur postgresql de test
|
||||
```
|
||||
podman pull docker.io/library/postgres:11-alpine
|
||||
podman run -dt -p 5432:5432 postgres:11-alpine
|
||||
docker run -dt -p 5432:5432 --name postgres postgres:11-alpine
|
||||
docker exec -ti postgres bash
|
||||
|
||||
psql -U postgres -h localhost -c "CREATE ROLE risotto WITH LOGIN PASSWORD 'risotto';"
|
||||
psql -U postgres -h localhost -c "CREATE DATABASE risotto;"
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
FROM python:3.7
|
||||
|
||||
# Requirements
|
||||
ARG TIRAMISU_REPO_URL=https://framagit.org/tiramisu/tiramisu.git
|
||||
ARG RISOTTO_REPO_URL=https://forge.cadoles.com/Infra/risotto.git
|
||||
ARG ROUGAIL_REPO_URL=https://forge.cadoles.com/Infra/rougail.git
|
||||
|
||||
RUN apt-get update && apt-get install -y \
|
||||
vim \
|
||||
curl \
|
||||
git \
|
||||
jq \
|
||||
&& apt-get clean
|
||||
|
||||
RUN git clone --branch develop ${TIRAMISU_REPO_URL} /srv/src/tiramisu
|
||||
RUN git clone --branch develop ${RISOTTO_REPO_URL} /srv/src/risotto
|
||||
RUN git clone --branch master ${ROUGAIL_REPO_URL} /srv/src/rougail
|
||||
|
||||
RUN ln -s /srv/src/tiramisu/tiramisu /usr/local/lib/python3.7
|
||||
RUN ln -s /srv/src/rougail/src/rougail /usr/local/lib/python3.7
|
||||
RUN ln -s /srv/src/risotto/src/risotto /usr/local/lib/python3.7
|
||||
|
||||
RUN pip install Cheetah3
|
||||
RUN cd /srv/src/risotto && pip install -r requirements.txt
|
||||
|
||||
# Installation
|
||||
RUN cp -r /srv/src/risotto/messages/ /usr/local/lib/
|
||||
RUN mkdir -p /var/cache/risotto/servermodel
|
||||
RUN mkdir /srv/src/risotto/database
|
|
@ -0,0 +1,15 @@
|
|||
Docker
|
||||
```
|
||||
cd docker
|
||||
docker build -t cadoles/risotto .
|
||||
docker run -t -d --name risotto cadoles/risotto
|
||||
docker exec -ti risotto bash
|
||||
|
||||
```
|
||||
|
||||
Docker-Compose
|
||||
```
|
||||
cd docker
|
||||
docker-compose up
|
||||
docker-compose exec postgres /srv/src/postgres/postgres.init.sh
|
||||
```
|
|
@ -0,0 +1,22 @@
|
|||
version: '2.2'
|
||||
services:
|
||||
risotto:
|
||||
build:
|
||||
context: ../
|
||||
dockerfile: docker/Dockerfile
|
||||
volumes:
|
||||
- .:/srv/src/risotto
|
||||
ports:
|
||||
- "8080:8080"
|
||||
restart: unless-stopped
|
||||
postgres:
|
||||
image: postgres:11-alpine
|
||||
environment:
|
||||
POSTGRES_USER: ${POSTGRES_USER:-postgres}
|
||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-changeme}
|
||||
PGDATA: /data/postgres
|
||||
volumes:
|
||||
- ./postgres-init:/srv/src/postgres
|
||||
ports:
|
||||
- "5432:5432"
|
||||
restart: unless-stopped
|
|
@ -0,0 +1,9 @@
|
|||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" -h localhost <<-EOSQL
|
||||
CREATE ROLE risotto WITH LOGIN PASSWORD 'risotto';
|
||||
CREATE DATABASE risotto;
|
||||
GRANT ALL ON DATABASE risotto TO risotto;
|
||||
CREATE EXTENSION hstore;
|
||||
EOSQL
|
|
@ -97,7 +97,15 @@ CREATE TABLE log(
|
|||
|
||||
async def main():
|
||||
db_conf = get_config().get('database')
|
||||
pool = await asyncpg.create_pool(database=db_conf.get('dbname'), user=db_conf.get('user'))
|
||||
#asyncpg.connect('postgresql://postgres@localhost/test')
|
||||
engine = db_conf.get('engine')
|
||||
host = db_conf.get('host')
|
||||
dbname = db_conf.get('dbname')
|
||||
dbuser = db_conf.get('user')
|
||||
dbpassword = db_conf.get('password')
|
||||
dbport = db_conf.get('port')
|
||||
cfg = "{}://{}:{}@{}:{}/{}".format(engine, dbuser, dbpassword, host, dbport, dbname)
|
||||
pool = await asyncpg.create_pool(cfg)
|
||||
async with pool.acquire() as connection:
|
||||
async with connection.transaction():
|
||||
returns = await connection.execute(VERSION_INIT)
|
||||
|
@ -106,3 +114,4 @@ if __name__ == '__main__':
|
|||
loop = asyncio.get_event_loop()
|
||||
loop.run_until_complete(main())
|
||||
# asyncio.run(main())
|
||||
|
||||
|
|
|
@ -12,7 +12,8 @@ from pathlib import PurePosixPath
|
|||
CURRENT_PATH = PurePosixPath(__file__)
|
||||
|
||||
def get_config():
|
||||
return {'database': {'host': 'localhost',
|
||||
return {'database': {'engine': 'postgres',
|
||||
'host': 'postgres',
|
||||
'port': 5432,
|
||||
'dbname': 'risotto',
|
||||
'user': 'risotto',
|
||||
|
@ -30,3 +31,4 @@ def get_config():
|
|||
'source': {'root_path': '/srv/seed'},
|
||||
'cache': {'root_path': '/var/cache/risotto'}
|
||||
}
|
||||
|
||||
|
|
|
@ -248,7 +248,17 @@ class RegisterDispatcher:
|
|||
async def load(self):
|
||||
# valid function's arguments
|
||||
db_conf = get_config().get('database')
|
||||
self.pool = await asyncpg.create_pool(database=db_conf.get('dbname'), user=db_conf.get('user'))
|
||||
|
||||
#postgres://user:pass@host:port/database?option=value.
|
||||
engine = db_conf.get('engine')
|
||||
host = db_conf.get('host')
|
||||
dbname = db_conf.get('dbname')
|
||||
dbuser = db_conf.get('user')
|
||||
dbpassword = db_conf.get('password')
|
||||
dbport = db_conf.get('port')
|
||||
cfg = "{}://{}:{}@{}:{}/{}".format(engine, dbuser, dbpassword, host, dbport, dbname)
|
||||
print(cfg)
|
||||
self.pool = await asyncpg.create_pool(cfg)
|
||||
async with self.pool.acquire() as connection:
|
||||
async with connection.transaction():
|
||||
for version, messages in self.messages.items():
|
||||
|
@ -271,3 +281,4 @@ class RegisterDispatcher:
|
|||
module_name)
|
||||
await self.insert_message(connection,
|
||||
f'{version}.{message}')
|
||||
|
||||
|
|
Loading…
Reference in New Issue