Docker로 Zen-CLI를 구축하면서 Makefile로 편안하게 이동

계기.


그래서 실제로 해봤어요.

전제 조건


창고의 구성은 다음과 같다[1].
zenn-contents.git
├ articles -> Zenn-CLIで管理される記事ディレクトリ
├ books -> Zenn-CLIで管理される本ディレクトリ
├ CLI
│ ├ Dockerfile
│ └ package.json -> Zenn-CLIのバージョン管理に使用
├ docker-compose.yml
└ Makefile

컨테이너 내 작업 디렉토리 구성


우선 다음과 같은 방법으로 제작Dockerfiledocker-compose.yml.

Dockerfile


FROM node:12

WORKDIR /zenn

ADD package.json /zenn/package.json
RUN npm install

EXPOSE 8000

ENTRYPOINT [ "npx", "zenn" ]
CMD [ "preview" ]
공식 절차에 따라서도 가능하지만, 여러 PC에서 편집해야 한다는 점을 고려하면 제니-CLI 버전을 관리하는 것이 좋다package.json.
또한 조합ENTRYPOINTCMD을 통해 용기를 실행할 때의 매개 변수를 생략할 수 있다.

docker-compose.yml


version: '3.1'
services:
  zenn-cli:
    build:
      context: ./CLI
    volumes:
      - ./articles:/zenn/articles
      - ./books:/zenn/books
    working_dir: /zenn
    ports: 
      - 127.0.0.1:8000:8000
는 마운트articlesbooks만 하면 호스트와 용기 사이에서 글과 책을 공유할 수 있어 여분의 파일이 왔다 갔다 이동하는 것을 방지한다.

실제로 행동해 보세요.


먼저 docker-compose up로 아래와 같이 확인합니다.
zenn-cli_1  | 👀Preview on http://localhost:8000
그리고 브라우저에서 http://localhost:8000/를 열면 Zenn Editor가 나타납니다.
하지만 이렇게 되면 터미널이 젠-CLI에 독점되기 때문에 앞으로docker-compose up -d 수호자로 이동한다.

Makefile을 사용한 명령 단순화


여기 귀찮은 지령이 있지 않습니까?
( ^ω^)
docker-compose up -d
이렇게...
( ^ω^)
≡⊃⊂≡
이렇게 하면
( ^ω^)
make
여기 기억하기 어려운 지령이 있지 않습니까?
( ^ω^)
docker-compose run zenn-cli new:article
이렇게...
( ^ω^)
≡⊃⊂≡
이렇게 하면
( ^ω^)
make article
up:
	docker-compose up -d

down:
	docker-compose down

article:
	docker-compose run zenn-cli new:article

book:
	docker-compose run zenn-cli new:book

shell:
	docker-compose run --entrypoint bash zenn-cli

update:
	@jq ".dependencies[\"zenn-cli\"] = \"`docker-compose run --entrypoint npm zenn-cli show zenn-cli version | tr -d '\r'`\"" CLI/package.json > CLI/tmp.json
	@mv CLI/tmp.json CLI/package.json
	docker-compose build

끝맺다


미리보기로 표시된 상태에서 보도된md 파일을 업데이트하면 미리보기에 실시간으로 반영돼 잘 진행되고 있습니다(···)
게다가 GiitHub로 관리->GiitHub Actions로 사용->CI로 TextLight를 간단하게 조작할 수 있습니다!
따라서 텍스트를 넣으면 편안한 글쓰기 환경을 만들 수 있지 않을까😇
각주
엄밀히 말하면.gitignoreREADME.md도 있지만 본질이 아니기 때문에 여기서 생략↩︎

좋은 웹페이지 즐겨찾기