build(docker): add docker web image build
This commit is contained in:
13
.env.default
13
.env.default
@@ -7,4 +7,15 @@ KEY_STORE=<keystore.jks>
|
|||||||
KEY_PASS=<passphrase>
|
KEY_PASS=<passphrase>
|
||||||
REPO=https://git.shmyga.ru/api/packages/InfernalGames
|
REPO=https://git.shmyga.ru/api/packages/InfernalGames
|
||||||
PUBLISH_USER=<username>
|
PUBLISH_USER=<username>
|
||||||
PUBLISH_PASSWORD=<passphrase>
|
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"
|
||||||
|
)
|
||||||
@@ -26,3 +26,10 @@ COPY src ./src
|
|||||||
COPY dependencies ./dependencies
|
COPY dependencies ./dependencies
|
||||||
VOLUME ["/sdk", "/app/build", "/app/target", "/app/publish", "/app/src-gen"]
|
VOLUME ["/sdk", "/app/build", "/app/target", "/app/publish", "/app/src-gen"]
|
||||||
CMD ["npx", "gulp", "default"]
|
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"]
|
||||||
@@ -5,6 +5,7 @@ services:
|
|||||||
image: infernal-games/$PROJECT-builder
|
image: infernal-games/$PROJECT-builder
|
||||||
build:
|
build:
|
||||||
context: .
|
context: .
|
||||||
|
target: builder
|
||||||
secrets:
|
secrets:
|
||||||
- KEY_STORE
|
- KEY_STORE
|
||||||
- KEY_PASS
|
- KEY_PASS
|
||||||
|
|||||||
45
scripts/docker-action
Executable file
45
scripts/docker-action
Executable 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
|
||||||
Reference in New Issue
Block a user