기타 팁들

Script 실행 시 경로 포함하기

r잡초처럼 2023. 4. 28. 01:37

script 파일을 만들고 실행 시 다른 디렉토리에 있는 실행 파일을 실행 시켜야 하는 경우가 있을 수 있다. 나같은 경우에는 docker-compose 를 build 하고 테스트를 한 뒤 컨테이너들을 지우는 script 명령을 만들었다. 이 때 docker-compose 와 script 실행 파일이 다른 폴더에 위치하면서 오류를 겪었다

 

각 os 별로 상대 경로를 포함하여 실행하는 방법을 설명한다.

 

1. Window

참고 사이트

pushd “%~dp0”

docker-compose -f %~dp0..\..\docker-compose-test.yml -p test down
docker-compose -f %~dp0..\..\docker-compose-test.yml -p test build
docker-compose -f %~dp0..\..\docker-compose-test.yml -p test up -d test-db
docker-compose -f %~dp0..\..\docker-compose-test.yml -p test run test-api
docker-compose -f %~dp0..\..\docker-compose-test.yml -p test down

2. Linux

참고 사이트

#!/bin/bash

echo 'PARAM:' $BASH_SOURCE
RELATIVE_DIR=`dirname "$BASH_SOURCE"`
echo 'Dir:' $RELATIVE_DIR

CANONICAL_DIR=`readlink -f $RELATIVE_DIR`
echo 'CANONICAL DIR:' $CANONICAL_DIR

docker-compose -f $CANONICAL_DIR/../../docker-compose-test.yml -p test down
docker-compose -f $CANONICAL_DIR/../../docker-compose-test.yml -p test build
docker-compose -f $CANONICAL_DIR/../../docker-compose-test.yml -p test up -d test-db
docker-compose -f $CANONICAL_DIR/../../docker-compose-test.yml -p test run test-api
docker-compose -f $CANONICAL_DIR/../../docker-compose-test.yml -p test down