diff --git a/api/Dockerfile b/api/Dockerfile index d7f0050..2d8d4cb 100644 --- a/api/Dockerfile +++ b/api/Dockerfile @@ -5,6 +5,7 @@ ENV ANGEL_ENV=production COPY ./ ./ RUN pub get RUN dart compile exe bin/prod.dart -o /server +ENTRYPOINT ["dart", "bin/migrate.dart", "up"] FROM scratch WORKDIR /app diff --git a/api/config/default.yaml b/api/config/default.yaml index 8ee46d8..f527d63 100644 --- a/api/config/default.yaml +++ b/api/config/default.yaml @@ -2,12 +2,17 @@ host: 127.0.0.1 port: 3000 postgres: - host: localhost + host: db port: 5432 - database_name: appdb - username: appuser - password: App1970# - useSSL: false - time_zone: UTC + database_name: gesture_manager + username: postgres + password: gesture_manager_secret + use_ssl: false + time_zone: Asia/Shanghai + +redis: + host: kv + port: 6379 + jwt_secret: "OvA9SBLnncot8gFHvt8Gh1qkQ1ptGIQW" -password_salt: "test" \ No newline at end of file +password_salt: "Z5b84rrgsKmfNFNRExAC4BCJe5aZPdJq" \ No newline at end of file diff --git a/api/docker-compose.yml b/api/docker-compose.yml index 2dbb198..0938656 100644 --- a/api/docker-compose.yml +++ b/api/docker-compose.yml @@ -1,34 +1,45 @@ -version: "2.1" +version: "2.4" services: - mysql: - image: postgres:latest + kv: + image: redis:alpine + restart: always + container_name: dgm_redis + ports: + - "6379:6379" + networks: + - dgm_api_default + + db: + image: postgres:alpine restart: always container_name: dgm_postgres - command: --default-authentication-plugin=mysql_native_password environment: - MYSQL_ROOT_PASSWORD: Dx@8917312 - MYSQL_DATABASE: piwigo - MYSQL_USER: debuggerx - MYSQL_PASSWORD: dx8917312 + POSTGRES_DB: gesture_manager + POSTGRES_PASSWORD: gesture_manager_secret volumes: - - /mnt/hd500/db:/var/lib/mysql + - ../db_data:/var/lib/postgresql/data ports: - "5432:5432" networks: - - mynet + - dgm_api_default api: build: . + image: dgm_api_image container_name: dgm_api - links: - - dgm_postgres ports: - - 8888:8888 + - 3000:3000 + restart: always + depends_on: + - db + - kv + links: + - db:db + - kv:kv networks: - - mynet - restart: unless-stopped + - dgm_api_default networks: - mynet: - driver: bridge \ No newline at end of file + dgm_api_default: + name: dgm_api_default diff --git a/api/lib/src/routes/controllers/scheme_controllers.dart b/api/lib/src/routes/controllers/scheme_controllers.dart index cdf22ff..5b68c61 100644 --- a/api/lib/src/routes/controllers/scheme_controllers.dart +++ b/api/lib/src/routes/controllers/scheme_controllers.dart @@ -221,8 +221,9 @@ Future configureServer(Angel app) async { for (var order in orders) { schemeQuery.orderBy(order, descending: true); } - schemeQuery.offset(page * pageSize); - schemeQuery.limit(pageSize + 1); + schemeQuery + ..offset(page * pageSize) + ..limit(pageSize + 1); return schemeQuery.get(req.queryExecutor).then((value) { var hasMore = value.length > pageSize; if (hasMore) value.removeLast(); diff --git a/api/start.sh b/api/start.sh index 89f09ef..f084689 100644 --- a/api/start.sh +++ b/api/start.sh @@ -1,7 +1,8 @@ #!/usr/bin/env bash -docker build -t dgm_api_image . -docker image prune -f --filter label=stage=dart_builder -docker rm -f dgm_api -docker run -d --restart=always --name dgm_api -p 3000:3000 dgm_api_image -docker image prune -f +docker-compose build +docker-compose up -d +MIGRATION_IMAGE="$(docker image ls --filter label=stage=dart_builder -q)" +docker run --name=dgm_api_migrate --network dgm_api_default "$MIGRATION_IMAGE" +docker rm "$(docker ps -a --filter name=dgm_api_migrate -q)" +docker image prune -f --filter label=stage=dart_builder \ No newline at end of file