diff --git a/.docker/alpine/redis/Dockerfile b/.docker/alpine/redis/Dockerfile index 8b29896..cb71edc 100644 --- a/.docker/alpine/redis/Dockerfile +++ b/.docker/alpine/redis/Dockerfile @@ -1,7 +1,7 @@ ARG REDIS_VERSION=${REDIS_VERSION:-"6"} FROM redis:${REDIS_VERSION}-alpine -MAINTAINER Luc Michalski + ARG REDIS_LOG_PREFIX_PATH=${REDIS_LOG_PREFIX_PATH:-"/var/log/redis"} diff --git a/.docker/alpine/traefik/Dockerfile b/.docker/alpine/traefik/Dockerfile index 0ef04d3..92a2300 100644 --- a/.docker/alpine/traefik/Dockerfile +++ b/.docker/alpine/traefik/Dockerfile @@ -1,7 +1,6 @@ ARG TRAEFIK_VERSION=${TRAEFIK_VERSION:-"v2.3.4"} FROM traefik:${TRAEFIK_VERSION} -MAINTAINER Michalski Luc ARG TRAEFIK_LOG_PREFIX_PATH=${TRAEFIK_LOG_PREFIX_PATH:-"/var/log/traefik"} diff --git a/.env-example b/.env-example index af99619..6429940 100644 --- a/.env-example +++ b/.env-example @@ -1,14 +1,14 @@ # General -NAMESPACE="seoz" +NAMESPACE="osat" DEBUG="True" AUTO_LETS_ENCRYPT=no CURRENT_UID="" # Server -DATABASE_ENGINE="mysql" +DATABASE_ENGINE="postgresql" SECRET_KEY="=k!3##nty)rnp^(4wu=_kj(g7a)1rk80oymn52(we00z5y%ox=OP" -ALLOWED_HOSTS="http://dashboard:3000,http://server:8000,http://server:8080" -CORS_ALLOWED_ORIGINS="" +ALLOWED_HOSTS="http://localhost:8000" +CORS_ALLOWED_ORIGINS="http://dashboard:3000,http://server:8000,http://server:8080,http://localhost:3000" REST_FRAMEWORK_PAGE_SIZE="20" LANGUAGE_CODE="" TIME_ZONE="UTC" @@ -33,11 +33,11 @@ GF_PLUGINS_ALLOW_LOADING_UNSIGNED_PLUGINS="grafana-piechart-panel,vertamedia-cli # MySQL MYSQL_VERSION="10.5.6-r0" -MYSQL_DATABASE=seoz +MYSQL_DATABASE=osat MYSQL_PASSWORD="da33ze45pM89T!" MYSQL_PASSWORD_LENGTH=8 MYSQL_ROOT_PASSWORD="da33ze45pM89T!az79" -MYSQL_USER=seoz +MYSQL_USER=osat MYSQL_DOMAIN="localhost" MYSQL_PORT="3306" @@ -46,9 +46,9 @@ NODE_VERSION="14" # PostgreSQL POSTGRES_VERSION="13" -POSTGRES_USER=seoz +POSTGRES_USER=osat POSTGRES_PASSWORD="YOUR_POSTGRES_PASSWORD" -POSTGRES_DB=seoz +POSTGRES_DB=osat POSTGRES_PORT="5432" # ProtonVPN / Privoxy diff --git a/README.md b/README.md index 601b2b8..e772ea8 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,6 @@ -# Seoz +# Osat + + +docker exec -it osat-server python manage.py createsuperuser diff --git a/admin/Caddyfile b/admin/Caddyfile index 33dcd00..b6d5cd4 100644 --- a/admin/Caddyfile +++ b/admin/Caddyfile @@ -1,6 +1,6 @@ :80 -root * /opt/seoz/www +root * /opt/osat/www file_server header Access-Control-Allow-Origin * @@ -8,6 +8,6 @@ header Access-Control-Allow-Headers * header Access-Control-Allow-Methods * log { - output file /opt/seoz/logs/access.log + output file /opt/osat/logs/access.log format single_field common_log } diff --git a/admin/Dockerfile b/admin/Dockerfile index dd41297..43a25cc 100644 --- a/admin/Dockerfile +++ b/admin/Dockerfile @@ -1,7 +1,6 @@ ARG NODE_VERSION=${NODE_VERSION:-"14"} FROM mhart/alpine-node:${NODE_VERSION} AS front-builder -MAINTAINER Michalski Luc # Import project's dependencies WORKDIR /app @@ -16,7 +15,6 @@ COPY . . RUN yarn build FROM caddy:2.3.0-rc.1-builder-alpine AS caddy-builder -MAINTAINER Michalski Luc ARG CADDY_VERSION=${CADDY_VERSION:-"v2.3.0-rc.1"} ARG CADDY_PLUGINS=${CADDY_PLUGINS:-"cors,realip,expires,cache,gzip"} @@ -32,7 +30,6 @@ RUN echo "VERSION=${CADDY_VERSION} PLUGINS=${CADDY_PLUGINS}" && \ VERSION=${CADDY_VERSION} PLUGINS=${CADDY_PLUGINS} ENABLE_TELEMETRY=false /bin/sh /usr/bin/caddy-builder FROM alpine:3.12 AS runtime -MAINTAINER Michalski Luc # Set build arguments ARG VERSION @@ -41,15 +38,15 @@ ARG NOW # Install runtime dependencies & create runtime user RUN apk --no-cache --no-progress add ca-certificates openssl bash nano \ - && adduser -D seoz -h /opt/seoz -s /bin/sh \ - && su seoz -c 'cd /opt/seoz; mkdir -p www logs' + && adduser -D osat -h /opt/osat -s /bin/sh \ + && su osat -c 'cd /opt/osat; mkdir -p www logs' # Switch to user context -USER seoz -WORKDIR /opt/seoz +USER osat +WORKDIR /opt/osat # Copy the virtual environment from the previous image -COPY --from=front-builder /app/build /opt/seoz/www +COPY --from=front-builder /app/build /opt/osat/www # Install caddy COPY --from=caddy-builder /usr/bin/caddy /usr/bin/caddy @@ -59,21 +56,20 @@ COPY --from=caddy-builder /go/bin/parent /bin/parent # Container configuration EXPOSE 3000 80 443 2015 -VOLUME /opt/seoz/www +VOLUME /opt/osat/www # Set container labels -LABEL name="seoz-admin" \ +LABEL name="osat-admin" \ version="$VERSION" \ build="$BUILD" \ architecture="x86_64" \ build_date="$NOW" \ - vendor="seoz" \ - maintainer="Luc Michalski " \ - url="https://github.com/seoz.io/seoz-docker" \ + vendor="osat" \ + url="https://github.com/osat.io/osat-docker" \ summary="SeoZ project with Docker" \ description="SeoZ project with Docker" \ vcs-type="git" \ - vcs-url="https://github.com/seoz.io/seoz-docker" \ + vcs-url="https://github.com/osat.io/osat-docker" \ vcs-ref="$VERSION" \ distribution-scope="public" diff --git a/admin/Dockerfile.dev b/admin/Dockerfile.dev index 50c6d5b..e4b357f 100644 --- a/admin/Dockerfile.dev +++ b/admin/Dockerfile.dev @@ -1,7 +1,6 @@ ARG NODE_VERSION=${NODE_VERSION:-"14"} FROM mhart/alpine-node:${NODE_VERSION} -MAINTAINER Michalski Luc # Import project's dependencies WORKDIR /app diff --git a/contribs/bert-summary/.env-example b/contribs/bert-summary/.env-example index f565f85..f57c26b 100644 --- a/contribs/bert-summary/.env-example +++ b/contribs/bert-summary/.env-example @@ -1,5 +1,5 @@ # General -NAMESPACE="seoz" +NAMESPACE="osat" # Tini TINI_VERSION="v0.19.0" diff --git a/contribs/bert-summary/Dockerfile b/contribs/bert-summary/Dockerfile index 152d204..88131e7 100644 --- a/contribs/bert-summary/Dockerfile +++ b/contribs/bert-summary/Dockerfile @@ -1,7 +1,6 @@ ARG PYTHON_VERSION=${PYTHON_VERSION:-"3"} FROM python:${PYTHON_VERSION}-alpine AS builder -MAINTAINER Michalski Luc # change to app dir WORKDIR /app @@ -32,7 +31,7 @@ COPY requirements.txt . RUN pip3 install -r requirements.txt FROM python:${PYTHON_VERSION}-alpine AS runtime -MAINTAINER Luc Michalski + ARG VERSION ARG BUILD @@ -59,18 +58,17 @@ ENV PATH="/opt/venv/bin:$PATH" \ VIRTUAL_ENV="/opt/venv" # Set container labels -LABEL name="seoz-contrib-bert-summary" \ +LABEL name="osat-contrib-bert-summary" \ version="$VERSION" \ build="$BUILD" \ architecture="x86_64" \ build_date="$NOW" \ - vendor="seoz" \ - maintainer="Luc Michalski " \ - url="https://github.com/seoz.io/seoz-docker" \ + vendor="osat" \ + url="https://github.com/osat.io/osat-docker" \ summary="SeoZ contrib - YAKE" \ description="SeoZ contrib - YAKE" \ vcs-type="git" \ - vcs-url="https://github.com/seoz.io/seoz-docker" \ + vcs-url="https://github.com/osat.io/osat-docker" \ vcs-ref="$VERSION" \ distribution-scope="public" diff --git a/contribs/bert-summary/Dockerfile.gpu b/contribs/bert-summary/Dockerfile.gpu index 13f7377..c8a0c79 100644 --- a/contribs/bert-summary/Dockerfile.gpu +++ b/contribs/bert-summary/Dockerfile.gpu @@ -2,7 +2,6 @@ ARG CUDA_VERSION=${CUDA_VERSION:-"10.2"} ARG UBUNTU_VERSION=${UBUNTU_VERSION:-"18.04"} FROM nvidia/cuda:${CUDA_VERSION}-cudnn7-devel-ubuntu${UBUNTU_VERSION} -MAINTAINER Michalski Luc RUN apt-get update && \ apt-get install -y sudo \ diff --git a/contribs/bert-summary/Dockerfile.ubuntu b/contribs/bert-summary/Dockerfile.ubuntu index 32f9aaf..1c86adf 100644 --- a/contribs/bert-summary/Dockerfile.ubuntu +++ b/contribs/bert-summary/Dockerfile.ubuntu @@ -1,5 +1,4 @@ FROM ubuntu:18.04 -MAINTAINER Michalski Luc RUN apt-get update && \ apt-get install -y sudo \ diff --git a/contribs/bert-summary/docker-compose.yml b/contribs/bert-summary/docker-compose.yml index 58b5110..e10eb5f 100644 --- a/contribs/bert-summary/docker-compose.yml +++ b/contribs/bert-summary/docker-compose.yml @@ -3,7 +3,7 @@ version: '3.8' services: bert-summary: - image: seoz/seoz-contrib-bert-summary:latest + image: osat/osat-contrib-bert-summary:latest container_name: ${NAMESPACE}-contrib-bert-summary build: context: . diff --git a/contribs/yake/.env-example b/contribs/yake/.env-example index 897f328..82ad666 100644 --- a/contribs/yake/.env-example +++ b/contribs/yake/.env-example @@ -1,5 +1,5 @@ # General -NAMESPACE="seoz" +NAMESPACE="osat" # Tini TINI_VERSION="v0.19.0" diff --git a/contribs/yake/Dockerfile b/contribs/yake/Dockerfile index ffa2f91..5ccb0e1 100644 --- a/contribs/yake/Dockerfile +++ b/contribs/yake/Dockerfile @@ -1,7 +1,6 @@ ARG PYTHON_VERSION=${PYTHON_VERSION:-"3.7.1"} FROM python:${PYTHON_VERSION}-alpine AS builder -MAINTAINER Michalski Luc ARG YAKE_VERSION=${YAKE_VERSION:-"master"} @@ -37,7 +36,7 @@ RUN wget https://raw.githubusercontent.com/LIAAD/yake/${YAKE_VERSION}/requiremen RUN pip3 install git+https://github.com/liaad/yake.git@${YAKE_VERSION} FROM python:3-alpine AS runtime -MAINTAINER Luc Michalski + ARG VERSION ARG BUILD @@ -64,18 +63,17 @@ ENV PATH="/opt/venv/bin:$PATH" \ VIRTUAL_ENV="/opt/venv" # Set container labels -LABEL name="seoz-contrib-yake" \ +LABEL name="osat-contrib-yake" \ version="$VERSION" \ build="$BUILD" \ architecture="x86_64" \ build_date="$NOW" \ - vendor="seoz" \ - maintainer="Luc Michalski " \ - url="https://github.com/seoz.io/seoz-docker" \ + vendor="osat" \ + url="https://github.com/osat.io/osat-docker" \ summary="SeoZ contrib - YAKE" \ description="SeoZ contrib - YAKE" \ vcs-type="git" \ - vcs-url="https://github.com/seoz.io/seoz-docker" \ + vcs-url="https://github.com/osat.io/osat-docker" \ vcs-ref="$VERSION" \ distribution-scope="public" diff --git a/contribs/yake/docker-compose.yml b/contribs/yake/docker-compose.yml index 313cc24..9391272 100644 --- a/contribs/yake/docker-compose.yml +++ b/contribs/yake/docker-compose.yml @@ -3,7 +3,7 @@ version: '3.8' services: yake: - image: seoz/seoz-contrib-yake:latest + image: osat/osat-contrib-yake:latest container_name: ${NAMESPACE}-contrib-yake build: context: . diff --git a/docker-compose.yml b/docker-compose.yml index fce457b..dcfa7a5 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,8 +2,8 @@ version: "3.8" services: - seoz: &seoz_base - image: seoz/seoz-server:latest + server: + image: stangirard/osat-server build: context: ./server dockerfile: Dockerfile @@ -13,34 +13,27 @@ services: CELERY_BROKER_URL: ${CELERY_BROKER_URL} CELERY_RESULT_BACKEND: ${CELERY_RESULT_BACKEND} DATABASE_ENGINE: ${DATABASE_ENGINE} - DATABASE_HOST: mysql - DATABASE_PORT: ${MYSQL_PORT} - DATABASE_NAME: ${MYSQL_DATABASE} - DATABASE_USER: ${MYSQL_USER} - DATABASE_PASSWORD: ${MYSQL_PASSWORD} + DATABASE_HOST: postgres + DATABASE_PORT: ${POSTGRES_PORT} + DATABASE_NAME: ${POSTGRES_DB} + DATABASE_USER: ${POSTGRES_USER} + DATABASE_PASSWORD: ${POSTGRES_PASSWORD} SECRET_KEY: ${SECRET_KEY} DEBUG: ${DEBUG} CORS_ALLOWED_ORIGINS: ${CORS_ALLOWED_ORIGINS} ALLOWED_HOSTS: ${ALLOWED_HOSTS} REST_FRAMEWORK_PAGE_SIZE: ${REST_FRAMEWORK_PAGE_SIZE} volumes: - - server-data:/opt/seoz/data - - server-logs:/opt/seoz/logs - networks: - - internal - - web - - server: - <<: *seoz_base + - server-data:/opt/app/data + - server-logs:/opt/app/logs container_name: ${NAMESPACE}-server ports: - - 5000:5000 - expose: - - 5000 + - "8000:8000" + command: ["django"] depends_on: - worker - beats - - mysql + - postgres - dashboard labels: - "org.label-schema.group=webservice" @@ -51,7 +44,29 @@ services: restart: unless-stopped worker: - <<: *seoz_base + image: stangirard/osat-server + build: + context: ./server + dockerfile: Dockerfile + args: + TINI_VERSION: ${TINI_VERSION} + environment: + CELERY_BROKER_URL: ${CELERY_BROKER_URL} + CELERY_RESULT_BACKEND: ${CELERY_RESULT_BACKEND} + DATABASE_ENGINE: ${DATABASE_ENGINE} + DATABASE_HOST: postgres + DATABASE_PORT: ${POSTGRES_PORT} + DATABASE_NAME: ${POSTGRES_DB} + DATABASE_USER: ${POSTGRES_USER} + DATABASE_PASSWORD: ${POSTGRES_PASSWORD} + SECRET_KEY: ${SECRET_KEY} + DEBUG: ${DEBUG} + CORS_ALLOWED_ORIGINS: ${CORS_ALLOWED_ORIGINS} + ALLOWED_HOSTS: ${ALLOWED_HOSTS} + REST_FRAMEWORK_PAGE_SIZE: ${REST_FRAMEWORK_PAGE_SIZE} + volumes: + - server-data:/opt/app/data + - server-logs:/opt/app/logs container_name: ${NAMESPACE}-worker depends_on: - redis @@ -64,7 +79,29 @@ services: restart: unless-stopped beats: - <<: *seoz_base + image: stangirard/osat-server + build: + context: ./server + dockerfile: Dockerfile + args: + TINI_VERSION: ${TINI_VERSION} + environment: + CELERY_BROKER_URL: ${CELERY_BROKER_URL} + CELERY_RESULT_BACKEND: ${CELERY_RESULT_BACKEND} + DATABASE_ENGINE: ${DATABASE_ENGINE} + DATABASE_HOST: postgres + DATABASE_PORT: ${POSTGRES_PORT} + DATABASE_NAME: ${POSTGRES_DB} + DATABASE_USER: ${POSTGRES_USER} + DATABASE_PASSWORD: ${POSTGRES_PASSWORD} + SECRET_KEY: ${SECRET_KEY} + DEBUG: ${DEBUG} + CORS_ALLOWED_ORIGINS: ${CORS_ALLOWED_ORIGINS} + ALLOWED_HOSTS: ${ALLOWED_HOSTS} + REST_FRAMEWORK_PAGE_SIZE: ${REST_FRAMEWORK_PAGE_SIZE} + volumes: + - server-data:/opt/app/data + - server-logs:/opt/app/logs container_name: ${NAMESPACE}-beats depends_on: - redis @@ -73,11 +110,12 @@ services: - "traefik.enable=false" networks: - internal - command: ["beats"] + command: ["beat"] restart: unless-stopped dashboard: - image: seoz/seoz-dashboard:latest + image: stangirard/osat-dashboard + # image: osat/osat-dashboard:latest container_name: ${NAMESPACE}-dashboard build: context: ./admin @@ -90,7 +128,7 @@ services: CADDY_PLUGINS: "cors,realip,expires,cache" volumes: - ./admin/Caddyfile:/etc/Caddyfile:rw - # - ./dashboard/dist:/opt/seoz/www + # - ./dashboard/dist:/opt/osat/www expose: - 80 ports: @@ -123,55 +161,8 @@ services: - "traefik.enable=false" restart: unless-stopped - mysql: - image: mariadb:alpine-${MYSQL_VERSION} - container_name: ${NAMESPACE}-mariadb - build: - context: .docker/alpine/mariadb - dockerfile: Dockerfile - args: - MARIABD_VERSION: ${MYSQL_VERSION} - environment: - ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} - USER_DATABASE: ${MYSQL_DATABASE} - USER_NAME: ${MYSQL_USER} - USER_PASSWORD: ${MYSQL_PASSWORD} - USER_PRIVILEGES: ALTER, CREATE, DELETE, DROP, INDEX, INSERT, REFERENCES, SELECT, UPDATE - PASSWORD_LENGTH: ${MYSQL_PASSWORD_LENGTH} - LOGROTATE_MINSIZE: 10M - LOGROTATE_MAXAGE: 7 - SKIP_SHOW_DATABASE: "OFF" # If set to ON, will deny the SHOW DATABASES statement to regular users. - # AUTO_LETS_ENCRYPT: "no" - # SERVER_NAME: "seoz.io" - # LOCAL_INFILE: "OFF" - # SECURE_FILE_PRIV: "/opt/data/import" - # ROOT_HOST: "%" - labels: - - "org.label-schema.group=storage" - - "traefik.enable=false" - # ports: - # - ${MYSQL_PORT}:${MYSQL_PORT} - # expose: - # - ${MYSQL_PORT} - networks: - - internal - - web - volumes: - - mysql-data:/var/lib/mysql - - mysql-logs:/var/log/mysql - - certs-data:/etc/letsencrypt - - ./shared/config/mysql:/custom.cnf.d - command: - - --slow_query_log=ON - - --slow_query_log_file=/var/log/mysql/slowlog.log - - --long_query_time=0 - - --log_slow_verbosity=full - - --query_response_time_stats=ON - - --performance-schema=ON - - --innodb_monitor_enable=all - redis: - image: seoz/redis:${REDIS_VERSION}-alpine + # image: osat/redis:${REDIS_VERSION}-alpine build: context: ./.docker/alpine/redis dockerfile: Dockerfile @@ -195,140 +186,6 @@ services: - "--logfile ${REDIS_LOG_FILE}" restart: unless-stopped - influxdb: - image: influxdb:${INFLUXDB_VERSION}-alpine - container_name: ${NAMESPACE}-influxdb - # ports: - # - 8083:8083 - # - 8086:8086 - # - 8090:8090 - # expose: - # - 8083 - # - 8086 - # - 8090 - environment: - - INFLUXDB_DB=${INFLUXDB_DB} - - INFLUXDB_ADMIN_USER=${INFLUXDB_ADMIN_USER} - - INFLUXDB_ADMIN_PASSWORD=${INFLUXDB_ADMIN_PASSWORD} - networks: - - internal - # - web - volumes: - - ./shared/data/influxdb/imports:/imports - - influxdb-data:/var/lib/influxdb - labels: - - "org.label-schema.group=monitoring" - - "traefik.enable=false" - restart: unless-stopped - - grafana: - image: grafana/grafana:latest - container_name: ${NAMESPACE}-grafana - expose: - - ${GF_PORT} - ports: - - ${GF_PORT}:${GF_PORT} - networks: - - internal - - web - depends_on: - - mysql - - influxdb - hostname: grafana - user: ${CURRENT_UID} - volumes: - - ./shared/config/grafana/provisioning:/etc/grafana/provisioning:rw - - ./shared/config/grafana/provisioning/plugins:/etc/grafana/provisioning/plugins:rw - - ./shared/config/grafana/provisioning/notifiers:/etc/grafana/provisioning/notifiers:rw - - ./shared/config/grafana/dashboards:/var/lib/grafana/dashboards:rw - - ./shared/config/grafana/datasources:/etc/grafana/datasources:rw - - grafana-data:/var/lib/grafana - environment: - GF_INSTALL_PLUGINS: ${GF_INSTALL_PLUGINS} - GF_PLUGINS_ALLOW_LOADING_UNSIGNED_PLUGINS: ${GF_PLUGINS_ALLOW_LOADING_UNSIGNED_PLUGINS} - GF_SECURITY_ADMIN_USER: ${GF_SECURITY_ADMIN_USER} - GF_SECURITY_ADMIN_PASSWORD: ${GF_SECURITY_ADMIN_PASSWORD} - GF_SERVER_SERVE_FROM_SUB_PATH: "true" - GF_USERS_ALLOW_SIGN_UP: "false" - GF_PANELS_DISABLE_SANITIZE_HTML: "true" - labels: - - "org.label-schema.group=monitoring" - - "traefik.enable=true" - restart: unless-stopped - - proton-privoxy: - image: seoz/seoz-protonvpn-privoxy:latest - container_name: ${NAMESPACE}-pvpn-privoxy - build: - context: ./.docker/alpine/proton-privoxy - dockerfile: Dockerfile - environment: - - HOST_NETWORK=${PVPN_HOST_NETWORK} - - PVPN_USERNAME=${PVPN_USERNAME} - - PVPN_PASSWORD=${PVPN_PASSWORD} - - PVPN_TIER=${PVPN_TIER} - - PVPN_PROTOCOL=${PVPN_PROTOCOL} - - PVPN_CMD_ARGS=${PVPN_CMD_ARGS} - - PVPN_DEBUG=${PVPN_DEBUG} - volumes: - - /etc/localtime:/etc/localtime:ro - ports: - - 8888:8080 - devices: - - /dev/net/tun - cap_add: - - NET_ADMIN - labels: - - "org.label-schema.group=proxy" - - "traefik.enable=false" - networks: - - internal - - web - restart: unless-stopped - - contrib-yake: - image: seoz/seoz-contrib-yake:latest - container_name: ${NAMESPACE}-contrib-yake - build: - context: ./contribs/yake - dockerfile: Dockerfile - args: - YAKE_VERSION: ${YAKE_VERSION} - TINI_VERSION: ${TINI_VERSION} - environment: - - YAKE_HOST=${YAKE_HOST} - - YAKE_PORT=${YAKE_PORT} - - YAKE_DEBUG=${YAKE_DEBUG} - ports: - - ${YAKE_PORT}:${YAKE_PORT} - expose: - - ${YAKE_PORT} - labels: - - "org.label-schema.group=extractor" - - "traefik.enable=true" - networks: - - web - restart: unless-stopped - - contrib-bert-summary: - image: seoz/seoz-contrib-bert-summary:latest - container_name: ${NAMESPACE}-contrib-bert-summary - build: - context: ./contribs/bert-summary - dockerfile: Dockerfile.ubuntu - args: - TINI_VERSION: ${TINI_VERSION} - ports: - - ${BERT_SUMMARY_PORT}:${BERT_SUMMARY_PORT} - expose: - - ${BERT_SUMMARY_PORT} - labels: - - "org.label-schema.group=extractor" - - "traefik.enable=true" - networks: - - web - restart: unless-stopped - networks: internal: driver: bridge @@ -347,19 +204,16 @@ volumes: certs-data: # PostreSQL postgres-data: - # MySQL/MariaDB + # Redis mysql-data: mysql-logs: driver_opts: type: none o: bind device: ${PWD}/shared/logs/mysql - # Redis redis-data: redis-logs: driver_opts: type: none o: bind - device: ${PWD}/shared/logs/redis - grafana-data: - influxdb-data: \ No newline at end of file + device: ${PWD}/shared/logs/redis \ No newline at end of file diff --git a/server/Dockerfile b/server/Dockerfile index 230d779..d7878f9 100644 --- a/server/Dockerfile +++ b/server/Dockerfile @@ -1,11 +1,10 @@ -FROM python:3-alpine AS builder -MAINTAINER Luc Michalski +FROM python:3.8-slim AS builder WORKDIR /opt/app # Install Python and external dependencies, including headers and GCC -RUN apk add --no-cache libffi libffi-dev musl-dev gcc g++ git ca-certificates postgresql-dev mariadb-connector-c-dev - +RUN apt update +RUN apt install --no-install-recommends -y git cmake build-essential libgoogle-glog-dev libgflags-dev libeigen3-dev libopencv-dev libboost-dev libboost-all-dev libboost-iostreams-dev libcurl4-openssl-dev protobuf-compiler libopenblas-dev libhdf5-dev libprotobuf-dev libleveldb-dev libsnappy-dev liblmdb-dev libutfcpp-dev wget unzip # Update Pip3 RUN python3 -m pip install --upgrade pip @@ -22,32 +21,21 @@ COPY requirements.txt . # Install dependencies into the virtual environment with Pipenv RUN python3 -m pip install --upgrade pip -RUN pip3 install -r requirements.txt +RUN pip3 --no-cache-dir install -r requirements.txt RUN pip3 install celery -FROM python:3-alpine -MAINTAINER Luc Michalski - ARG VERSION ARG BUILD ARG NOW ARG TINI_VERSION=${TINI_VERSION:-"v0.19.0"} -# Install tini to /usr/local/sbin -ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-muslc-amd64 /usr/local/sbin/tini # Install runtime dependencies & create runtime user -RUN apk --no-cache --no-progress add ca-certificates openssl libffi openblas libstdc++ mariadb-connector-c postgresql-client nano bash \ - && chmod +x /usr/local/sbin/tini && mkdir -p /opt \ - && adduser -D seoz -h /opt/seoz -s /bin/sh \ - && su seoz -c 'cd /opt/seoz; mkdir -p bin config data logs' +RUN mkdir -p /opt \ + mkdir -p bin config data logs # Switch to user context -USER seoz -WORKDIR /opt/seoz - -# Copy the virtual environment from the previous image -COPY --from=builder /opt/venv /opt/venv +WORKDIR /opt/app # Copy sources COPY . . @@ -57,23 +45,18 @@ ENV PATH="/opt/venv/bin:$PATH" \ VIRTUAL_ENV="/opt/venv" # Set container labels -LABEL name="seoz-server" \ +LABEL name="osat-server" \ version="$VERSION" \ build="$BUILD" \ architecture="x86_64" \ build_date="$NOW" \ - vendor="seoz" \ - maintainer="Luc Michalski " \ - url="https://github.com/seoz.io/seoz-docker" \ - summary="SeoZ project with Docker" \ - description="SeoZ project with Docker" \ + vendor="osat" \ vcs-type="git" \ - vcs-url="https://github.com/seoz.io/seoz-docker" \ vcs-ref="$VERSION" \ distribution-scope="public" # Container configuration -EXPOSE 5000 -VOLUME ["/opt/seoz/data"] -ENTRYPOINT ["tini", "-g", "--", "./docker-entrypoint.sh"] +EXPOSE 8000 +VOLUME ["/opt/app/data"] +ENTRYPOINT ["./docker-entrypoint.sh"] # CMD ["./docker-entrypoint.sh"] \ No newline at end of file diff --git a/server/docker-entrypoint.sh b/server/docker-entrypoint.sh index a1e0ae3..3a0f4a8 100755 --- a/server/docker-entrypoint.sh +++ b/server/docker-entrypoint.sh @@ -26,27 +26,33 @@ case "$1" in 'worker') shift - exec celery -A osat worker -l info $@ + exec celery -A core worker -l info ;; 'beat') shift - exec celery -A osat beat -l info $@ + exec celery -A core beat -l info ;; 'migrate') shift - exec python3 manage.py migrate $@ + exec python3 manage.py migrate ;; 'makemigrations') shift - exec python3 manage.py makemigrations $@ + exec python3 manage.py makemigrations ;; 'createsuperuser') shift - exec python3 manage.py createsuperuser $@ + exec python3 manage.py createsuperuser + ;; + + 'django') + shift + python3 manage.py migrate + exec python manage.py runserver 0.0.0.0:8000 ;; 'bash') @@ -57,7 +63,7 @@ case "$1" in ;; *) - python3 manage.py migrate - exec python3 manage.py runserver $@ + + exec echo $@ ;; esac