generated from alecodes/base-template
chore: add build workflow
This commit is contained in:
parent
6288969c4d
commit
059d6a5a94
4 changed files with 140 additions and 1 deletions
|
|
@ -1,12 +1,16 @@
|
|||
FROM ghcr.io/linuxcontainers/debian-slim:latest
|
||||
|
||||
COPY --from=ghcr.io/amacneil/dbmate /usr/local/bin/dbmate /usr/local/bin/dbmate
|
||||
COPY --from=ghcr.io/amacneil/dbmate:main /usr/local/bin/dbmate /usr/local/bin/dbmate
|
||||
COPY --from=lovasoa/sqlpage:main /usr/local/bin/sqlpage /usr/local/bin/sqlpage
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
ENV SQLPAGE_WEB_ROOT=/app
|
||||
ENV SQLPAGE_CONFIGURATION_DIRECTORY=/app/sqlpage
|
||||
ENV DB_DRIVER=
|
||||
ENV DB_USER=
|
||||
ENV DB_NAME=
|
||||
ENV DB_PASSWORD_FILE=
|
||||
|
||||
RUN addgroup --gid 1000 --system index_user && \
|
||||
adduser --uid 1000 --system --no-create-home --ingroup index_user index_user && \
|
||||
|
|
@ -15,7 +19,12 @@ RUN addgroup --gid 1000 --system index_user && \
|
|||
chown -R index_user:index_user /etc/sqlpage/sqlpage.db
|
||||
|
||||
COPY --chown=index_user:index_user ./src /app
|
||||
COPY --chown=index_user:index_user ./docker/entrypoint.sh /usr/bin/entrypoint.sh
|
||||
|
||||
RUN chmod a+x /usr/bin/entrypoint.sh
|
||||
|
||||
USER index_user
|
||||
|
||||
ENTRYPOINT ["/usr/bin/entrypoint.sh"]
|
||||
|
||||
CMD /usr/local/bin/sqlpage
|
||||
|
|
|
|||
50
docker/docker-stack.yaml
Normal file
50
docker/docker-stack.yaml
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
services:
|
||||
index:
|
||||
image: git.alecodes.page/alecodes/index:${GITHUB_SHA:-latest}
|
||||
networks:
|
||||
- reverse_proxy
|
||||
- default
|
||||
secrets:
|
||||
- index_db_pass
|
||||
environment:
|
||||
SQLPAGE_WEB_ROOT: /app
|
||||
DB_DRIVER: postgres
|
||||
DB_USER: index
|
||||
DB_NAME: index
|
||||
DB_PASSWORD_FILE: /run/secrets/index_db_pass
|
||||
deploy:
|
||||
rollback_config:
|
||||
failure_action: continue
|
||||
update_config:
|
||||
delay: 2s
|
||||
failure_action: rollback
|
||||
order: start-first
|
||||
placement:
|
||||
constraints:
|
||||
- node.labels.services_kind==projects
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.routers.personal_page.rule=Host(`alecodes.page`)
|
||||
- traefik.http.services.personal_page.loadbalancer.server.port=3000
|
||||
|
||||
db:
|
||||
image: postgres:17
|
||||
secrets:
|
||||
- index_db_pass
|
||||
environment:
|
||||
POSTGRES_USER: index
|
||||
POSTGRES_DB: index
|
||||
POSTGRES_PASSWORD_FILE: /run/secrets/index_db_pass
|
||||
volumes:
|
||||
- db_data:/var/lib/postgresql/data
|
||||
|
||||
volumes:
|
||||
db_data:
|
||||
|
||||
networks:
|
||||
reverse_proxy:
|
||||
external: true
|
||||
|
||||
secrets:
|
||||
index_db_pass:
|
||||
external: true
|
||||
11
docker/entrypoint.sh
Normal file
11
docker/entrypoint.sh
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
#!/bin/sh
|
||||
|
||||
if [[ -e $DB_PASSWORD_FILE ]]; then
|
||||
DB_PASSWORD=$(cat $DB_PASSWORD_FILE)
|
||||
fi
|
||||
|
||||
export DATABASE_URL="postgres://${DB_USER}:${DB_PASSWORD}@db:5432/${DB_DB}?sslmode=disable"
|
||||
|
||||
echo $DATABASE_URL
|
||||
|
||||
exec "$@"
|
||||
Loading…
Add table
Add a link
Reference in a new issue