diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index ae3e306b6ef1a88fcc13e1cfd2e6044e6eab9421..76de6d1df20a36f4380d0d5db3341d9217a0d756 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -1,7 +1,11 @@ -version: '3' - services: playground-be: command: yarn dev -L + volumes: + - .:/usr/src/playground-be + upload: command: npm start + volumes: + - ./upload:/usr/src/upload + - /usr/src/upload/node_modules/ diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index 1f859306292ad8945f8425d46f8aa1df7e5191f1..11b000d5c6280fa1e9ba1c7d99388b73daa08ae1 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -1,7 +1,5 @@ -version: '3' - services: playground-be: - command: yarn dev -L + command: yarn start upload: command: npm run prod diff --git a/docker-compose.test.yml b/docker-compose.test.yml index 3c5b5e0451d609d2f86498deb40b6a93641365a8..1d3b5f093e93b020130fac51edd10d220971be64 100644 --- a/docker-compose.test.yml +++ b/docker-compose.test.yml @@ -1,6 +1,5 @@ -version: '3' - services: playground-be: - container_name: playground-be-test command: yarn test + volumes: + - .:/usr/src/playground-be diff --git a/docker-compose.yml b/docker-compose.yml index 4842f346ee4b3382e138b7c92d1e1dd1f6587a05..de3f859d4c9dc621e5926c907bd300a3de5606cd 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,21 +1,19 @@ -# upload/Dockerfile -version: '3' - services: playground-be: + container_name: ${ENV:-dev}-playground-be build: . - image: playground-be + image: boschvn/playground-be:${IMAGE_TAG:-latest} ports: - '${PORT}:${PORT}' depends_on: - playground-db - upload - volumes: - - .:/usr/src/playground-be networks: - node-network + restart: always playground-db: + container_name: ${ENV:-dev}-playground-db image: mongo:4.4.6-bionic ports: - '${MONGO_EXPOSE_PORT}:27017' @@ -23,24 +21,24 @@ services: - dbdata:/data/db networks: - node-network + restart: always upload: + container_name: ${ENV:-dev}-upload build: ./upload/ - image: upload + image: boschvn/upload:${IMAGE_TAG:-latest} ports: - '${UPLOAD_PORT}:${UPLOAD_PORT}' volumes: - - ./upload:/usr/src/upload - - /usr/src/upload/node_modules/ - '${UPLOAD_PATH}:/usr/src/upload/data' + networks: - node-network - + restart: always volumes: dbdata: - networks: node-network: driver: bridge diff --git a/start.sh b/start.sh index c3259f0cfc5be8db5cce123d8446fd098f8357a5..fe1ddba1e916fb97edf2e43ce0f62870f15d1f0e 100755 --- a/start.sh +++ b/start.sh @@ -37,7 +37,10 @@ if [ ! -d "$UPLOAD_PATH" ]; then fi # Replace env file to upload directory -cp .env ./upload/ -f +if ! cp .env ./upload/ -f; then + echo "Failed to copy .env file to ./upload/" + exit 1 +fi # Set permissions for the directory echo "Setting permissions for $UPLOAD_PATH" @@ -48,23 +51,41 @@ sudo chmod -R 775 "$UPLOAD_PATH" DOCKER_COMMAND="" NO_CACHE="" DETACH="" +BUILD="" -# Check for --no-cache argument +# Check for arguments for arg in "$@" do - if [ "$arg" == "--no-cache" ]; then - NO_CACHE="--no-cache" - fi - if [ "$arg" == "-d" ]; then - DETACH="-d" - fi + case $arg in + --no-cache) + NO_CACHE="--no-cache" + shift + ;; + -d) + DETACH="-d" + shift + ;; + --build) + BUILD="--build" + shift + ;; + -prod) + ENV_SUFFIX="prod" + shift + ;; + *) + # Handle unexpected arguments + echo "Unknown argument: $arg" + exit 1 + ;; + esac done -# Determine the command to run based on the argument -if [ "$1" == "-prod" ]; then - DOCKER_COMMAND="docker compose -f docker-compose.yml -f docker-compose.prod.yml up --build $NO_CACHE $DETACH" +# Determine the Docker Compose command based on the -prod flag +if [ "$ENV_SUFFIX" == "prod" ]; then + DOCKER_COMMAND="docker compose -p ${ENV}-playground-be -f docker-compose.yml -f docker-compose.prod.yml up $BUILD $NO_CACHE $DETACH" else - DOCKER_COMMAND="docker compose -f docker-compose.yml -f docker-compose.dev.yml up --build $NO_CACHE $DETACH" + DOCKER_COMMAND="docker compose -p ${ENV}-playground-be -f docker-compose.yml -f docker-compose.dev.yml up $BUILD $NO_CACHE $DETACH" fi # Run Docker Compose diff --git a/upload/Dockerfile b/upload/Dockerfile index 9de0da92a7f911a98da04ce44f5c41336b99d7ba..b2db6bedd6f11cbc9e4ee5828637ba0682540ac3 100755 --- a/upload/Dockerfile +++ b/upload/Dockerfile @@ -12,4 +12,3 @@ USER node RUN npm install COPY --chown=node:node . . -