기타 팁들
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