build(docker): add docker web image build

This commit is contained in:
2026-04-10 13:59:44 +03:00
parent 7cadfac350
commit 5cae80636b
4 changed files with 65 additions and 1 deletions

View File

@@ -8,3 +8,14 @@ KEY_PASS=<passphrase>
REPO=https://git.shmyga.ru/api/packages/InfernalGames
PUBLISH_USER=<username>
PUBLISH_PASSWORD=<passphrase>
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"
)

View File

@@ -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"]

View File

@@ -5,6 +5,7 @@ services:
image: infernal-games/$PROJECT-builder
build:
context: .
target: builder
secrets:
- KEY_STORE
- KEY_PASS

45
scripts/docker-action Executable file
View File

@@ -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