Docker는 모든 개발자에게 힌트를 작성합니다.
8304 단어 devopstutorialdockerproductivity
오늘 제가 여러분께 보여드릴 것은 작은 기교입니다. 개발 과정에서 Docker Compose를 어떻게 활용하는지 알려드리겠습니다.
노드 가져올게요.js의 경우 Node에 대한 자세한 내용은 알 필요가 없습니다.js, 이것은 단지 당신과 이 기교를 공유하는 예일 뿐입니다.나는 또 빠르게 녹이 슬는 예를 보여줄 것이다.
Docker Compose 구성
노드에 익숙해지면Docker Compose를 사용하여 js 개발을 진행할 때 이 문제에 사용된 유행하는 이미지는 공식적인 node
이미지로 node
(자바스크립트 코드를 실행하고 해석하는 실행 가능한 파일) 과 npm
(Node.js 패키지를 설치하는 도구) 등 일련의 도구를 포함하고 있음을 알 수 있습니다.
당신은 이미 이런 방식으로 당신의 docker-compose.yaml
을 구축했을 것입니다.
version: "3"
services:
node:
image: node
user: node
working_dir: /home/node/app
tty: true
stdin_open: true
volumes:
- .:/home/node/app
이것은 거의 모든 Docker Compose 설정입니다. 오래된 용기를 만드는 데 사용되며, 모든 중요한 일에 사용됩니다.먼저 백그라운드에서 컨테이너를 시작합니다.
$ docker-compose up --detach
그런 다음 스크립트를 실행하는 것과 같은 몇 가지 명령에 사용할 수 있습니다.
$ docker-compose exec node node main.js
또는 새 NPM 구성을 초기화하려면:
$ docker-compose exec node npm init --yes
심지어 우리가 가장 좋아하는 도구도 설치한다.
$ docker-compose exec node npm install --save-dev rollup
그런데 우리가 어떻게 명령마다 이 node
작은 물건을 반복하는지 볼까요?npm
이라는 용기를 사용할 때 node
을 운행하는 것이 얼마나 부자연스러운지 봅시다.오늘은 다양한 Docker Compose 구성을 사용하여 명령을 보다 자연스럽고 직관적으로 수행하는 방법을 보여 드리겠습니다.
향상된 API
우선, 우리는 두 개의 용기가 필요하다. 하나는 node
실행 가능한 파일이고, 다른 하나는 npm
실행 가능한 파일이다.공식 이미지가 포함되어 있기 때문에 사용자 정의 이미지 두 개를 사용할 필요가 없습니다.다음과 같이 node
이미지를 두 번만 재사용할 수 있습니다.
version: "3"
services:
node:
image: node
user: node
working_dir: /home/node/app
entrypoint: node
volumes:
- .:/home/node/app
npm:
image: node
user: node
working_dir: /home/node/app
entrypoint: npm
volumes:
- .:/home/node/app
이 두 용기의 설정은 entrypoint
속성을 제외하고는 거의 똑같습니다.이것은 명령을 실행하기 전에 추가할 명령을 알려 주는 데 사용됩니다.만약 이것이 좀 이해하기 어렵다면, 너는 이것이 사실상 매우 간단한 수작이라는 것을 발견할 수 있을 것이다.현재 불필요한 stdin_open
과 tty
속성도 삭제했습니다.
이것은 지금 우리가 어떤 노드를 운행하고 싶다면js 스크립트, 우리는 이렇게 할 수 있다.
$ docker-compose run node main.js
현재 Docker Compose를 사용하여 우리의 노드가 얼마나 뚜렷하고 아름다운지 보십시오.js 스크립트?이제 좀 더 직관적이지 않아요?이렇게 하는 또 다른 장점은 명령(node main.js
)이 멈추면 용기가 멈추는 것이다.이렇게 하면 우리는 이미 백엔드에서 실행되고 있는 Docker 용기를 멈추는 것을 잊지 않을 것이다. (내가 몇 번이나 어떤 항목을 검색해야 했는지, 나는 한 서버가 같은 포트에서 실행되고 있다. 단지 그것을 취소하기 위해서이다. 왜냐하면 나는 어제 그것을 멈추기가 귀찮았기 때문이다. 나는 이것도 너에게 일어났다고 믿는다.)
그러나 여기까지는 아닙니다. 동일한 API를 사용하여 npm
명령을 실행할 수 있기 때문입니다.
$ docker-compose run npm install --save-dev rollup-plugin-terser
이렇게 해서 우리는 또 다른 소포를 포함했다.이게 얼마나 좋은 것 같아?우리는 우리가 원하는 명령을 계속 추가할 수 있다.이것이 바로 entrypoint
의 속성이 이렇게 강하고 우리가 이미 훌륭한 도구의 기능을 활용하기 위해 아름다운 작은 API를 구축할 수 있는 이유이다.
정말?
JavaScript와 노드에 관심이 많습니다.여기는 js 생태계이지만, 너는 이 속임수로 어떤 일을 하든지 할 수 있다.Ruby, Python, C, Rust 등등...한 가지 일.
version: "3"
services:
node:
image: node
user: node
working_dir: /home/node/app
entrypoint: node
volumes:
- .:/home/node/app
npm:
image: node
user: node
working_dir: /home/node/app
entrypoint: npm
volumes:
- .:/home/node/app
cargo:
image: rust
user: 1000:1000
working_dir: /usr/src/myapp
entrypoint: cargo
volumes:
- .:/usr/src/myapp
$ docker-compose run cargo new awesome-wasm-thingy --bin
여기에 cargo
명령만 포함되어 있습니다. 이 명령은 Rust를 사용하여 웹 Assembly의 다음 큰일을 생성하는 데 사용됩니다.이렇게
그러나 작은 단점은 이미 실행된 용기보다 용기를 실행하는 데 더 많은 시간이 필요하다는 것이다.현재 우리의 명령은 실행 가능한 파일이 멈출 때 실행 중인 용기를 만들고 삭제하기 때문입니다. 앞에서 말한 바와 같이.그러나 내가 보기에 우리의 컨테이너 운행과 정지에 소요되는 시간은 그리 길지 않다.나는 집에서 소형 노트북으로 일하기 때문에 1, 2초의 용기가 작동하고 제거되는 것을 자주 본다.만약 네가 잠시 기다려도 괜찮다면, 이것은 매우 멋진 해결 방안이다.
이 속임수를 너는 어떤 언어를 쓸 줄 아니?Docker Compose 구성과 명령을 공유하십시오!
내 책을 읽어줘서 고마워요.만약 당신에게 어떤 문제가 있다면, 조금도 주저하지 않고 그들에게 물어보세요. 만약 당신이 이 문장이 좋고 나쁨이라고 생각한다면, 나에게 왜 그런지 말해 주세요.
Reference
이 문제에 관하여(Docker는 모든 개발자에게 힌트를 작성합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/aminnairi/docker-compose-tips-for-any-developers-11j
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
version: "3"
services:
node:
image: node
user: node
working_dir: /home/node/app
tty: true
stdin_open: true
volumes:
- .:/home/node/app
$ docker-compose up --detach
$ docker-compose exec node node main.js
$ docker-compose exec node npm init --yes
$ docker-compose exec node npm install --save-dev rollup
우선, 우리는 두 개의 용기가 필요하다. 하나는
node
실행 가능한 파일이고, 다른 하나는 npm
실행 가능한 파일이다.공식 이미지가 포함되어 있기 때문에 사용자 정의 이미지 두 개를 사용할 필요가 없습니다.다음과 같이 node
이미지를 두 번만 재사용할 수 있습니다.version: "3"
services:
node:
image: node
user: node
working_dir: /home/node/app
entrypoint: node
volumes:
- .:/home/node/app
npm:
image: node
user: node
working_dir: /home/node/app
entrypoint: npm
volumes:
- .:/home/node/app
이 두 용기의 설정은 entrypoint
속성을 제외하고는 거의 똑같습니다.이것은 명령을 실행하기 전에 추가할 명령을 알려 주는 데 사용됩니다.만약 이것이 좀 이해하기 어렵다면, 너는 이것이 사실상 매우 간단한 수작이라는 것을 발견할 수 있을 것이다.현재 불필요한 stdin_open
과 tty
속성도 삭제했습니다.이것은 지금 우리가 어떤 노드를 운행하고 싶다면js 스크립트, 우리는 이렇게 할 수 있다.
$ docker-compose run node main.js
현재 Docker Compose를 사용하여 우리의 노드가 얼마나 뚜렷하고 아름다운지 보십시오.js 스크립트?이제 좀 더 직관적이지 않아요?이렇게 하는 또 다른 장점은 명령(node main.js
)이 멈추면 용기가 멈추는 것이다.이렇게 하면 우리는 이미 백엔드에서 실행되고 있는 Docker 용기를 멈추는 것을 잊지 않을 것이다. (내가 몇 번이나 어떤 항목을 검색해야 했는지, 나는 한 서버가 같은 포트에서 실행되고 있다. 단지 그것을 취소하기 위해서이다. 왜냐하면 나는 어제 그것을 멈추기가 귀찮았기 때문이다. 나는 이것도 너에게 일어났다고 믿는다.)그러나 여기까지는 아닙니다. 동일한 API를 사용하여
npm
명령을 실행할 수 있기 때문입니다.$ docker-compose run npm install --save-dev rollup-plugin-terser
이렇게 해서 우리는 또 다른 소포를 포함했다.이게 얼마나 좋은 것 같아?우리는 우리가 원하는 명령을 계속 추가할 수 있다.이것이 바로 entrypoint
의 속성이 이렇게 강하고 우리가 이미 훌륭한 도구의 기능을 활용하기 위해 아름다운 작은 API를 구축할 수 있는 이유이다.정말?
JavaScript와 노드에 관심이 많습니다.여기는 js 생태계이지만, 너는 이 속임수로 어떤 일을 하든지 할 수 있다.Ruby, Python, C, Rust 등등...한 가지 일.
version: "3"
services:
node:
image: node
user: node
working_dir: /home/node/app
entrypoint: node
volumes:
- .:/home/node/app
npm:
image: node
user: node
working_dir: /home/node/app
entrypoint: npm
volumes:
- .:/home/node/app
cargo:
image: rust
user: 1000:1000
working_dir: /usr/src/myapp
entrypoint: cargo
volumes:
- .:/usr/src/myapp
$ docker-compose run cargo new awesome-wasm-thingy --bin
여기에 cargo
명령만 포함되어 있습니다. 이 명령은 Rust를 사용하여 웹 Assembly의 다음 큰일을 생성하는 데 사용됩니다.이렇게
그러나 작은 단점은 이미 실행된 용기보다 용기를 실행하는 데 더 많은 시간이 필요하다는 것이다.현재 우리의 명령은 실행 가능한 파일이 멈출 때 실행 중인 용기를 만들고 삭제하기 때문입니다. 앞에서 말한 바와 같이.그러나 내가 보기에 우리의 컨테이너 운행과 정지에 소요되는 시간은 그리 길지 않다.나는 집에서 소형 노트북으로 일하기 때문에 1, 2초의 용기가 작동하고 제거되는 것을 자주 본다.만약 네가 잠시 기다려도 괜찮다면, 이것은 매우 멋진 해결 방안이다.
이 속임수를 너는 어떤 언어를 쓸 줄 아니?Docker Compose 구성과 명령을 공유하십시오!
내 책을 읽어줘서 고마워요.만약 당신에게 어떤 문제가 있다면, 조금도 주저하지 않고 그들에게 물어보세요. 만약 당신이 이 문장이 좋고 나쁨이라고 생각한다면, 나에게 왜 그런지 말해 주세요.
Reference
이 문제에 관하여(Docker는 모든 개발자에게 힌트를 작성합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/aminnairi/docker-compose-tips-for-any-developers-11j
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
version: "3"
services:
node:
image: node
user: node
working_dir: /home/node/app
entrypoint: node
volumes:
- .:/home/node/app
npm:
image: node
user: node
working_dir: /home/node/app
entrypoint: npm
volumes:
- .:/home/node/app
cargo:
image: rust
user: 1000:1000
working_dir: /usr/src/myapp
entrypoint: cargo
volumes:
- .:/usr/src/myapp
$ docker-compose run cargo new awesome-wasm-thingy --bin
Reference
이 문제에 관하여(Docker는 모든 개발자에게 힌트를 작성합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/aminnairi/docker-compose-tips-for-any-developers-11j텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)