일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- Golang성능테스트
- Go성능테스트
- Golang디자인패턴
- 챠트그리기
- 디자인패턴학습필요성
- Golang부하테스트
- go로드맵
- vue3-chartjs
- vue3
- vue3 통신
- snoflake
- 대역폭측정하기
- golang벤치마크
- GO부하테스트
- GO벤치마킹
- Golang벤치마킹
- Go벤치마크
- GObenchmark
- Go디자인패턴
- Golangbenchmark
- Iperf3
- 리플렉션성능
- vue3 axios
- Line차트
- pprof
- golang uuid
- Vue.js
- 디자인패컨
- line챠트
- go리플렉션성능
- Today
- Total
import ( "코딩", "행복", "즐거움" )
docker-compose를 외치는 흑마술 'Makefile' 소개 본문
docker 교육을 하다가 docker-compose는 매번 타이핑하기 귀찮다.
뭔가 좋은 방법 없을까~'라는 생각에 찾은 Makefile을 소개하고자 한다.
Makefile이란?
Make라는 프로그램 빌드 작업을 자동화하는 도구의 규칙을 기술한 텍스트 파일입니다.
마법서(Makefile) 만들기
Makefile이라는 이름의 파일을 생성하고 아래 내용을 저장합니다.
.PHONY: setup up d b ps node
setup:
@make up
@make ps
d:
docker compose down
up:
docker compose up -d
ps:
docker compose ps
node:
docker compose exec node bash
makefile의 내용입니다.
.PHONY를 기재하지 않으면 명령어와 같은 이름의 파일이 있을 경우 충돌이 발생하여 명령어를 실행할 수 없습니다. (저는 빠졌습니다.)
@make 명령어를 사용하면 명령을 한꺼번에 처리할 수 있습니다.
@는 에코하지 않는다는 의미라고 합니다
명령어 내용의 들여쓰기는 Tab을 사용해야 합니다.
마법의 시전(make 명령어 실행)
make 명령어로 사용할 수 있습니다.
명령어를 사용해 보기 위해 yml 파일을 준비했습니다.
version: '3.9'
services:
node:
image: node:18-slim
tty: true
init: true
ports:
- '4000:4000'
volumes:
- ./node:/node
실제로 wsl에서 사용해 봅시다.
make setup으로 컨테이너를 실행하여 컨테이너의 상태를 확인해 봅시다.
root@sun33 /home/sun33/qiita/makefil # make setup
make[1]: Entering directory '/home/sun33/qiita/makefile'
docker compose up -d
[+] Running 2/2
⠿ Network makefile_default Created 0.0s
⠿ Container makefile-node-1 Started 0.5s
make[1]: Leaving directory '/home/sun33/qiita/makefile'
make[1]: Entering directory '/home/sun33/qiita/makefile'
docker compose ps
NAME COMMAND SERVICE STATUS PORTS
makefile-node-1 "docker-entrypoint.s…" node running 0.0.0.0:4000->4000/tcp, :::4000->4000/tcp
make[1]: Leaving directory '/home/sun33/qiita/makefile'
root@sun33 /home/sun33/qiita/makefile #
두 가지 명령을 실행할 수 있었네요.
make node로 node 컨테이너 안에 들어가 보겠습니다.
root@sun33 /home/sun33/qiita/makefile # make node
docker compose exec node bash
root@333c33c333c:/#
PHONY가 기재되어 있지 않은 경우, 동일한 파일이 있으면 명령을 실행할 수 없습니다.
root@sun33 /home/sun33/qiita/makefile # make node
make: 'node' is up to date.
ctrl + D 또는 exit 명령으로 컨테이너 내부에서 나와서 컨테이너를 파괴해 봅니다.
root@sun33 /home/sun33/qiita/makefile # make d
docker compose down
[+] Running 2/2
⠿ Container makefile-node-1 Removed 0.4s
⠿ Network makefile_default Removed 0.2s
root@sun33 /home/sun33/qiita/makefile #
make 명령어를 사용하면 docker-compose의 긴 명령어를 입력하지 않고도 손쉽게 명령어를 조작할 수 있게 되었습니다.
windows의 경우
windows의 경우 기본적으로 make 명령어를 사용할 수 없습니다.
make를 install하여 설정해 주어야 합니다.
정리
이제 make 명령이 너무 편해서 손에서 놓을 수 없게 되었습니다.
정말 편리하니 다양한 명령어를 정의해서 사용해보시기 바랍니다. 끝입니다.
원문 : https://qiita.com/sun33/items/d728bc9ec27129b53e17
docker-composeを詠唱する黒魔術「Makefile」入門 - Qiita
はじめに dockerの研修をやってた時に、「うーん、docker-composeって毎回打つのめんどくさい。なにかいい方法ないかな~」で見つけたMakefileを紹介したいと思います。 Makefileとは? Makeというプ
qiita.com