mirror of
https://github.com/penpot/penpot.git
synced 2025-07-24 12:37:13 +02:00
refactor: reorganize with some changes the docker images and manage.sh
This commit is contained in:
parent
3b648f5aa5
commit
a2c41cf9a7
20 changed files with 321 additions and 198 deletions
144
manage.sh
144
manage.sh
|
@ -4,42 +4,41 @@ set -e
|
|||
REV=`git rev-parse --short HEAD`
|
||||
IMGNAME="uxbox"
|
||||
|
||||
function kill_container {
|
||||
function kill-container {
|
||||
echo "Cleaning development container $IMGNAME:$REV..."
|
||||
if $(sudo docker ps | grep -q $IMGNAME); then
|
||||
sudo docker ps | grep $IMGNAME | awk '{print $1}' | xargs --no-run-if-empty sudo docker kill
|
||||
if $(docker ps | grep -q $IMGNAME); then
|
||||
docker ps | grep $IMGNAME | awk '{print $1}' | xargs --no-run-if-empty docker kill
|
||||
fi
|
||||
if $(sudo docker ps -a | grep -q $IMGNAME); then
|
||||
sudo docker ps -a | grep $IMGNAME | awk '{print $1}' | xargs --no-run-if-empty sudo docker rm
|
||||
if $(docker ps -a | grep -q $IMGNAME); then
|
||||
docker ps -a | grep $IMGNAME | awk '{print $1}' | xargs --no-run-if-empty docker rm
|
||||
fi
|
||||
}
|
||||
|
||||
function remove_image {
|
||||
function remove-image {
|
||||
echo "Clean old development image $IMGNAME..."
|
||||
sudo docker images | grep $IMGNAME | awk '{print $3}' | xargs --no-run-if-empty sudo docker rmi
|
||||
docker images | grep $IMGNAME | awk '{print $3}' | xargs --no-run-if-empty docker rmi
|
||||
}
|
||||
|
||||
function build_image {
|
||||
kill_container
|
||||
remove_image
|
||||
function build-devenv {
|
||||
kill-container
|
||||
echo "Building development image $IMGNAME:$REV..."
|
||||
sudo docker build --rm=true -t $IMGNAME:$REV docker/
|
||||
docker build --rm=true -t $IMGNAME:$REV -t $IMGNAME:latest docker/devenv
|
||||
}
|
||||
|
||||
function run_image {
|
||||
kill_container
|
||||
function run-devenv {
|
||||
kill-container
|
||||
|
||||
if ! $(sudo docker images | grep $IMGNAME | grep -q $REV); then
|
||||
build_image
|
||||
if ! $(docker images | grep $IMGNAME | grep -q $REV); then
|
||||
build-devenv
|
||||
fi
|
||||
|
||||
mkdir -p $HOME/.m2
|
||||
rm -rf ./frontend/node_modules
|
||||
|
||||
CONTAINER=$IMGNAME:$REV
|
||||
CONTAINER=$IMGNAME:latest
|
||||
|
||||
echo "Running development image $CONTAINER..."
|
||||
sudo docker run -ti \
|
||||
docker run --rm -ti \
|
||||
-v `pwd`:/home/uxbox/uxbox \
|
||||
-v $HOME/.m2:/home/uxbox/.m2 \
|
||||
-v $HOME/.gitconfig:/home/uxbox/.gitconfig \
|
||||
|
@ -47,59 +46,40 @@ function run_image {
|
|||
$CONTAINER
|
||||
}
|
||||
|
||||
function test {
|
||||
kill_container
|
||||
|
||||
echo "TODO Testing backend (require running postgresql)..."
|
||||
cd ./backend
|
||||
#lein test
|
||||
cd ..
|
||||
|
||||
echo "Testing frontend..."
|
||||
cd ./frontend
|
||||
./scripts/build-tests
|
||||
node ./out/tests.js
|
||||
cd ..
|
||||
function build-release-frontend-local {
|
||||
docker run -ti --rm \
|
||||
-w /home/uxbox/uxbox/frontend \
|
||||
-v `pwd`:/home/uxbox/uxbox \
|
||||
-v $HOME/.m2:/home/uxbox/.m2 \
|
||||
-e UXBOX_API_URL="/api" \
|
||||
-e UXBOX_VIEW_URL="/view" \
|
||||
$IMGNAME:latest ./scripts/build-release.sh
|
||||
}
|
||||
|
||||
function release_local {
|
||||
cd frontend
|
||||
echo "Building frontend release..."
|
||||
rm -rf ./dist
|
||||
rm -rf ./node_modules
|
||||
npm install
|
||||
npm run dist
|
||||
./scripts/dist-main
|
||||
./scripts/dist-view
|
||||
./scripts/dist-worker
|
||||
echo "Frontend release generated in $(pwd)/dist"
|
||||
|
||||
cd ../backend
|
||||
echo "Building backend release..."
|
||||
rm -rf ./dist
|
||||
./scripts/dist.sh
|
||||
echo "Backend release generated in $(pwd)/dist"
|
||||
|
||||
cd ..
|
||||
function build-release-frontend {
|
||||
build-release-frontend-local || exit 1;
|
||||
rm -rf docker/release.frontend/dist || exit 1;
|
||||
cp -r frontend/dist docker/release.frontend/ || exit 1;
|
||||
docker build --rm=true -t ${IMGNAME}-frontend:$REV -t ${IMGNAME}-frontend:latest docker/release.frontend/
|
||||
rm -rf docker/release.frontend/dist || exit 1;
|
||||
}
|
||||
|
||||
function release_image {
|
||||
echo "Building frontend release..."
|
||||
rm -rf ./frontend/dist ./frontend/node_modules ./frontend/dist
|
||||
sudo docker build --rm=true -t ${IMGNAME}_frontend:$REV frontend/
|
||||
echo "Frontend release image generated"
|
||||
|
||||
echo "Building backend release..."
|
||||
rm -rf ./backend/dist
|
||||
sudo docker build --rm=true -t ${IMGNAME}_backend:$REV backend/
|
||||
echo "Backend release image generated"
|
||||
function build-release-backend {
|
||||
rm -rf docker/release.backend/dist || exit 1;
|
||||
rsync -avr \
|
||||
--exclude="/test" \
|
||||
--exclude="/resources/public/media" \
|
||||
--exclude="/target" \
|
||||
--exclude="/scripts" \
|
||||
--exclude="/.*" \
|
||||
backend/ docker/release.backend/dist/;
|
||||
docker build --rm=true -t ${IMGNAME}-backend:$REV -t ${IMGNAME}-backend:latest docker/release.backend/
|
||||
rm -rf docker/release.backend/dist || exit 1;
|
||||
}
|
||||
|
||||
function run_release {
|
||||
kill_container
|
||||
|
||||
echo "Running production images..."
|
||||
sudo docker-compose up -d
|
||||
function build-release {
|
||||
build-release-frontend || exit 1;
|
||||
build-release-backend || exit 1;
|
||||
}
|
||||
|
||||
function usage {
|
||||
|
@ -107,30 +87,21 @@ function usage {
|
|||
echo "USAGE: $0 [ clean | build | run | test | release-local | release-docker | run-release ]"
|
||||
echo "Options:"
|
||||
echo "- clean Stop and clean up docker containers"
|
||||
echo "- build Build docker container for development with tmux"
|
||||
echo "- run Run (and build if necessary) development container (frontend at localhost:3449, backend at localhost:6060)"
|
||||
echo "- test Execute frontend unit tests (backend unit tests no available yet)"
|
||||
echo "- release-local Build a 'production ready' release"
|
||||
echo "- release-docker Build a 'production ready' docker container"
|
||||
echo "- run-release Run a 'production ready' docker-compose environment (frontend at localhost:80, backend at localhost:6060)"
|
||||
echo "- build-devenv Build docker container for development with tmux"
|
||||
echo "- run-devenv Run (and build if necessary) development container (frontend at localhost:3449, backend at localhost:6060)"
|
||||
echo "- build-release Build a 'production ready' release docker images"
|
||||
}
|
||||
|
||||
case $1 in
|
||||
clean)
|
||||
kill_container
|
||||
remove_image
|
||||
kill-container
|
||||
remove-image
|
||||
;;
|
||||
build)
|
||||
build_image
|
||||
build-devenv)
|
||||
build-devenv
|
||||
;;
|
||||
run)
|
||||
run_image
|
||||
;;
|
||||
test)
|
||||
test
|
||||
;;
|
||||
release-local)
|
||||
release_local
|
||||
run-devenv)
|
||||
run-devenv
|
||||
;;
|
||||
release-docker)
|
||||
release_image
|
||||
|
@ -138,6 +109,15 @@ case $1 in
|
|||
run-release)
|
||||
run_release
|
||||
;;
|
||||
build-release)
|
||||
build-release
|
||||
;;
|
||||
build-release-frontend)
|
||||
build-release-frontend
|
||||
;;
|
||||
build-release-backend)
|
||||
build-release-backend
|
||||
;;
|
||||
*)
|
||||
usage
|
||||
;;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue