Add Dockerfile
This commit is contained in:
parent
e100c838a5
commit
de2a95dc7d
6 changed files with 42 additions and 8 deletions
|
|
@ -1,6 +1,6 @@
|
|||
RUNBOAT_SUPPORTED_REPOS=["OCA/mis-builder", "shopinvader/odoo-shopinvader", "OCA/server-env"]
|
||||
RUNBOAT_ADMIN_USER="admin"
|
||||
RUNBOAT_ADMIN_PASSWD="admin"
|
||||
RUNBOAT_API_ADMIN_USER="admin"
|
||||
RUNBOAT_API_ADMIN_PASSWD="admin"
|
||||
RUNBOAT_BUILD_NAMESPACE=runboat-builds
|
||||
RUNBOAT_BUILD_PGHOST=postgres14.runboat-builds-db
|
||||
RUNBOAT_BUILD_PGPORT=5432
|
||||
|
|
@ -8,3 +8,5 @@ RUNBOAT_BUILD_PGUSER=runboat-build
|
|||
RUNBOAT_BUILD_PGPASSWORD=...
|
||||
RUNBOAT_BUILD_ADMIN_PASSWD=...
|
||||
RUNBOAT_BUILD_DOMAIN=runboat.odoo-community.org
|
||||
RUNBOAT_GITHUB_TOKEN=
|
||||
RUNBOAT_LOG_CONFIG=log-config.yaml
|
||||
|
|
|
|||
32
Dockerfile
Normal file
32
Dockerfile
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
FROM python:3.10
|
||||
|
||||
LABEL maintainer="Stéphane Bidoul"
|
||||
|
||||
RUN pip install --no-cache-dir --upgrade "pip>=21.3.1"
|
||||
|
||||
COPY requirements.txt /tmp/requirements.txt
|
||||
RUN pip install --no-cache-dir -r /tmp/requirements.txt
|
||||
|
||||
COPY src /app
|
||||
ENV PYTHONPATH=/app
|
||||
|
||||
COPY log-config.yaml /etc/runboat-log-config.yaml
|
||||
|
||||
ENV RUNBOAT_SUPPORTED_REPOS='["oca/server-env", "oca/mis-builder"]'
|
||||
ENV RUNBOAT_API_ADMIN_USER="admin"
|
||||
ENV RUNBOAT_API_ADMIN_PASSWD=
|
||||
ENV RUNBOAT_BUILD_NAMESPACE=runboat-builds
|
||||
ENV RUNBOAT_BUILD_PGHOST=postgres14.runboat-builds-db
|
||||
ENV RUNBOAT_BUILD_PGPORT=5432
|
||||
ENV RUNBOAT_BUILD_PGUSER=runboat-build
|
||||
ENV RUNBOAT_BUILD_PGPASSWORD=
|
||||
ENV RUNBOAT_BUILD_ADMIN_PASSWD=
|
||||
ENV RUNBOAT_BUILD_DOMAIN=runboat.example.com
|
||||
ENV RUNBOAT_GITHUB_TOKEN=
|
||||
ENV RUNBOAT_LOG_CONFIG=/etc/runboat-log-config.yaml
|
||||
|
||||
ENV KUBECONFIG=/run/kubeconfig
|
||||
|
||||
EXPOSE 8000
|
||||
|
||||
CMD [ "gunicorn", "-w", "1", "-k", "runboat.uvicorn.RunboatUvicornWorker", "runboat.app:app"]
|
||||
|
|
@ -68,7 +68,7 @@ in a different cluster.
|
|||
|
||||
- setup environment variables (start from `.env.sample`)
|
||||
- create a virtualenv, make sure to have pip>=21.3.1 and `pip install -e .`
|
||||
- run with `uvicorn runboat.app:app --log-config=log-config-dev.yaml`
|
||||
- run with `uvicorn runboat.app:app --log-config=log-config.yaml`
|
||||
|
||||
## Running in production
|
||||
|
||||
|
|
@ -128,7 +128,7 @@ MVP:
|
|||
- k8s init container timeout
|
||||
- better error handling in API (return 400 on user errors)
|
||||
- basic tests
|
||||
- build and publish runboat container image
|
||||
- publish runboat container image
|
||||
- look at other TODO in code to see if anything important remains
|
||||
- basic UI (single page with a combo box to select repo and show builds by branch/pr,
|
||||
with start/stop buttons)
|
||||
|
|
|
|||
|
|
@ -11,11 +11,11 @@ security = HTTPBasic()
|
|||
def authenticated(credentials: HTTPBasicCredentials = Depends(security)) -> None:
|
||||
correct_username = secrets.compare_digest(
|
||||
credentials.username,
|
||||
settings.admin_user,
|
||||
settings.api_admin_user,
|
||||
)
|
||||
correct_password = secrets.compare_digest(
|
||||
credentials.password,
|
||||
settings.admin_passwd,
|
||||
settings.api_admin_passwd,
|
||||
)
|
||||
if not (correct_username and correct_password):
|
||||
raise HTTPException(
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@ from pydantic import BaseSettings
|
|||
|
||||
|
||||
class Settings(BaseSettings):
|
||||
admin_user: str
|
||||
admin_passwd: str
|
||||
api_admin_user: str
|
||||
api_admin_passwd: str
|
||||
supported_repos: set[str]
|
||||
max_initializing: int = 2
|
||||
max_started: int = 6
|
||||
|
|
|
|||
Loading…
Reference in a new issue