diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..9e1ce229 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,20 @@ +FROM debian:bookworm-slim + +RUN apt-get update && apt-get install -y npm curl wget tar bash libicu-dev ca-certificates + +ARG SOURCES + +COPY $SOURCES /usr/local/bin/ + +#extract file +RUN tar -xzf /usr/local/bin/$SOURCES -C /usr/local/bin/ && \ + rm /usr/local/bin/$SOURCES + +#make Binner.Web executable +RUN chmod +x /usr/local/bin/Binner.Web + +EXPOSE 8090 + +#execute Binner.Web file +WORKDIR /usr/local/bin/ +ENTRYPOINT ["Binner.Web"] diff --git a/compose.yml b/compose.yml new file mode 100644 index 00000000..6bc07686 --- /dev/null +++ b/compose.yml @@ -0,0 +1,49 @@ +version: '3.9' + +services: + binner: + build: + args: + SOURCES: ./Binner_linux-x64.tar.gz + context: . + dockerfile: Dockerfile + depends_on: + mariadb: + condition: service_healthy + image: binner + container_name: binner-web + environment: + TZ: #fixme + ports: + - "8090:8090" + volumes: + - type: bind + source: ./appsettings.json + target: /usr/local/bin/appsettings.json + networks: + - app-network + + mariadb: + image: mariadb:latest + environment: + TZ: #fixme + MYSQL_ROOT_PASSWORD: #fixme + MYSQL_DATABASE: #fixme + MYSQL_USER: #fixme + MYSQL_PASSWORD: #fixme + container_name: binner-mysql + healthcheck: + test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"] + interval: 10s + timeout: 5s + retries: 3 + start_period: 10s + volumes: + - type: bind + source: ./db + target: /var/lib/mysql + networks: + - app-network + +networks: + app-network: