From 5cae80636b370be2e95debf443ac43acf1378760 Mon Sep 17 00:00:00 2001 From: shmyga Date: Fri, 10 Apr 2026 13:59:44 +0300 Subject: [PATCH] build(docker): add docker web image build --- .env.default | 13 ++++++++++++- Dockerfile | 7 +++++++ docker-compose.yaml | 1 + scripts/docker-action | 45 +++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 65 insertions(+), 1 deletion(-) create mode 100755 scripts/docker-action diff --git a/.env.default b/.env.default index 9403c7b..7916893 100644 --- a/.env.default +++ b/.env.default @@ -7,4 +7,15 @@ KEY_STORE= KEY_PASS= REPO=https://git.shmyga.ru/api/packages/InfernalGames PUBLISH_USER= -PUBLISH_PASSWORD= \ No newline at end of file +PUBLISH_PASSWORD= + +DOCKER_REPO=git.shmyga.ru +DOCKER_GROUP=infernalgames +DOCKER_ROOT="$DOCKER_REPO/$DOCKER_GROUP" +VERSION=$(grep -m 1 'version' ./package.json | grep -oP '"version"\s*:\s*"\K\d+\.\d+.\d+') +DOCKER_PROJECTS=( + "$PROJECT-web:web" +) +DOCKER_ARGS=( + "PROJECT_NAME=$PROJECT" +) \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 5122ea0..375b361 100644 --- a/Dockerfile +++ b/Dockerfile @@ -26,3 +26,10 @@ COPY src ./src COPY dependencies ./dependencies VOLUME ["/sdk", "/app/build", "/app/target", "/app/publish", "/app/src-gen"] CMD ["npx", "gulp", "default"] + +FROM hello-world AS web +ARG PROJECT_NAME +VOLUME ["/app/${PROJECT_NAME}"] +COPY ./target/app/html5 /app/${PROJECT_NAME}/html5 +COPY ./target/app/flash /app/${PROJECT_NAME}/flash +CMD ["/hello"] \ No newline at end of file diff --git a/docker-compose.yaml b/docker-compose.yaml index 20c3a6a..14c369f 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -5,6 +5,7 @@ services: image: infernal-games/$PROJECT-builder build: context: . + target: builder secrets: - KEY_STORE - KEY_PASS diff --git a/scripts/docker-action b/scripts/docker-action new file mode 100755 index 0000000..efaf4fb --- /dev/null +++ b/scripts/docker-action @@ -0,0 +1,45 @@ +#!/usr/bin/env bash +set -e +cd "$(dirname $(dirname "$0"))" || exit + +. .env + +build () { + echo "build: $1" + . "$1/.env" + for PROJECT in "${DOCKER_PROJECTS[@]}"; do + IFS=: read -r PROJECT_NAME PROJECT_TARGET <<< "$PROJECT" + ARGS=("build") + for ARG in ${DOCKER_ARGS[@]}; do + ARGS+=("--build-arg" "$ARG") + done + if [ -n "$PROJECT_TARGET" ]; then + ARGS+=("--target" "$PROJECT_TARGET") + fi + ARGS+=("-t" "$DOCKER_GROUP/$PROJECT_NAME" ".") + ARGS+=("-f" "$1/Dockerfile") + echo "${ARGS[@]}" + docker "${ARGS[@]}" + done +} + +publish () { + echo "publish: $1" + . "$1/.env" + for PROJECT in "${DOCKER_PROJECTS[@]}"; do + IFS=: read -r PROJECT_NAME PROJECT_TARGET <<< "$PROJECT" + docker tag $DOCKER_GROUP/$PROJECT_NAME $DOCKER_ROOT/$PROJECT_NAME:$VERSION + docker tag $DOCKER_GROUP/$PROJECT_NAME $DOCKER_ROOT/$PROJECT_NAME:latest + docker push $DOCKER_ROOT/$PROJECT_NAME:$VERSION + docker push $DOCKER_ROOT/$PROJECT_NAME:latest + done +} + +DEFAULT_TARGETS="." +TARGETS="${@-$DEFAULT_TARGETS}" + +DOCKER_ACTION="${DOCKER_ACTION-build}" + +for TARGET in $TARGETS; do + $DOCKER_ACTION "$TARGET" +done