Docker Compose: Do Shaothar a Shimpliú ag Úsáid Comhaid Déanta

Gach cúpla bliain, téann an tionscal forbartha bogearraí faoi athrú paradigm. Is féidir ceann de na feiniméin seo a aithint mar an spéis mhéadaitheach i gcoincheap na micrisheirbhísí. Cé nach iad na microservices an teicneolaíocht is nuaí, is le déanaí a tháinig méadú mór ar an éileamh atá air.

Tá micreasheirbhísí neamhspleácha uathrialacha á gcur in ionad seirbhísí móra monailiteacha anois. Is féidir smaoineamh ar mhicrisheirbhís mar fheidhmchlár a fhreastalaíonn ar chuspóir amháin agus an-sonrach. Mar shampla, d’fhéadfadh sé a bheith ina DBMS coibhneasta, ina fheidhmchlár Express, ina sheirbhís Solr.

Docker Compose: Do Shaothar a Shimpliú ag Úsáid Comhaid Déanta

Na laethanta seo, tá sé deacair a shamhlú go bhforbrófar córas bogearraí nua gan úsáid a bhaint as microservices. Agus tugann an staid seo, ina dhiaidh sin, sinn chuig ardán Docker.

dhugaire

Ardán dhugaire, i bhforbairt agus imscaradh microservices, tar éis éirí beagnach caighdeán tionscail. Ar shuíomh Gréasáin an tionscadail is féidir leat a fháil amach gurb é Docker an t-aon ardán coimeádaithe neamhspleách a ligeann d'eagraíochtaí aon iarratas a chruthú gan stró, chomh maith le iad a dháileadh agus a reáchtáil in aon timpeallacht - ó scamaill hibrideacha go córais imeall.

Comhdháil Docker

Технология Comhdháil Docker deartha chun feidhmchláir il-choimeádáin a chumrú. Is féidir le tionscadal Docker Compose an oiread coimeádáin Docker a bheith ann agus a theastaíonn ó chruthaitheoir an tionscadail.

Agus iad ag obair le Docker Compose, úsáidtear comhad YAML chun seirbhísí feidhmchláir a chumrú agus a n-idirghníomhú lena chéile a eagrú. Dá bhrí sin is uirlis é Docker Compose chun cur síos a dhéanamh agus feidhmchláir il-choimeádáin Docker a rith.

Docker Compose: Do Shaothar a Shimpliú ag Úsáid Comhaid Déanta
Dhá choimeádán ag rith ar chóras óstach

GNU Déan

Clár make, go bunúsach is uirlis é chun tógáil clár agus leabharlann ó chód foinseach a uathoibriú. Go ginearálta, is féidir linn a rá go bhfuil make baineann sé le haon phróiseas lena mbaineann orduithe treallacha a fhorghníomhú chun roinnt ábhar ionchuir a athrú go foirm aschuir éigin, chuig sprioc éigin. Is é ár gcás, na horduithe docker-compose a chlaochlú go spriocanna teibí (Spriocanna fón).

Chun an clár a insint make faoi ​​cad ba mhaith linn as é, ní mór dúinn comhad Makefile.

Inár Makefile beidh orduithe rialta ann docker и docker-compose, atá deartha chun go leor fadhbanna a réiteach. Is é sin, táimid ag caint faoi choimeádán a chur le chéile, faoi é a thosú, é a stopadh, é a atosú, logáil isteach úsáideora a eagrú don choimeádán, faoi oibriú le logaí coimeádáin, agus faoi fhadhbanna eile dá samhail a réiteach.

Cásanna Úsáide tipiciúla le haghaidh Cumadóireachta Dugairí

Samhlóimid feidhmchlár gréasáin rialta a bhfuil na comhpháirteanna seo a leanas aige:

  • Bunachar sonraí TimescaleDB (Postgres).
  • Feidhmchlár Express.js.
  • Ní dhéanann ping (ach coimeádán, aon rud speisialta).

Beidh 3 choimeádán Docker agus comhad ag teastáil ón bhfeidhmchlár seo docker-compose, ina bhfuil treoracha chun na coimeádáin seo a bhainistiú. Beidh pointí tadhaill éagsúla ag gach coimeádán. Mar shampla, le coimeádán timescale beifear in ann oibriú thart ar an mbealach céanna agus a oibríonn siad le bunachair shonraí. Is é sin, ligeann sé duit na gníomhartha seo a leanas a dhéanamh:

  • Logáil isteach sa bhlaosc Postgres.
  • Iompórtáil agus onnmhairiú táblaí.
  • chruthú pg_dump táblaí nó bunachair shonraí.

Coimeádán feidhmchláir Express.js, expressjs, féadfaidh na cumais seo a leanas a bheith aige:

  • Sonraí úra a sholáthar ó loga an chórais.
  • Logáil isteach sa bhlaosc chun orduithe áirithe a fhorghníomhú.

Idirghníomhú le Coimeádáin

Nuair a bheidh cumarsáid curtha ar bun againn idir coimeádáin ag baint úsáide as Docker Compose, tá sé in am cumarsáid a dhéanamh leis na coimeádáin sin. Laistigh den chóras Docker Compose tá ordú docker-compose, rogha tacaíochta -f, a ligeann duit comhad a aistriú chuig an gcóras docker-compose.yml.

Ag baint úsáide as cumais an rogha seo, is féidir leat idirghníomhú leis an gcóras a theorannú ach amháin do na coimeádáin a luaitear sa chomhad docker-compose.yml.

Breathnaímid ar an gcuma atá ar idirghníomhú le coimeádáin agus orduithe á n-úsáid docker-compose. Má shamhlaímid go gcaithfimid logáil isteach sa bhlaosc psql, ansin d'fhéadfadh go mbeadh cuma mar seo ar na horduithe comhfhreagracha:

docker-compose -f docker-compose.yml exec timescale psql -Upostgres

An t-ordú céanna nach n-úsáidtear a fhorghníomhú docker-composeAgus docker, b'fhéidir go mbeadh cuma mar seo:

docker exec -it  edp_timescale_1 psql -Upostgres

Tabhair faoi deara le do thoil gur fearr i gcónaí an t-ordú a úsáid i gcásanna den sórt sin docker, agus an fhoireann docker-compose, toisc go gcuireann sé seo deireadh leis an ngá atá le cuimhneamh ar ainmneacha coimeádán.

Níl an dá ordú thuas chomh deacair sin. Ach dá mba rud é gur úsáideamar “fillteán” san fhoirm Makefile, a thabharfadh comhéadan dúinn i bhfoirm orduithe simplí agus a thabharfadh féin orduithe fada comhchosúla, ansin d'fhéadfaí na torthaí céanna a bhaint amach mar seo:

make db-shell

Tá sé soiléir go leor go bhfuil an úsáid Makefile déanann sé i bhfad níos éasca oibriú le coimeádáin!

Sampla oibre

Bunaithe ar an léaráid tionscadail thuas, cruthóimid an comhad seo a leanas docker-compose.yml:

version: '3.3'
services:
    api:
        build: .
        image: mywebimage:0.0.1
        ports:
            - 8080:8080
        volumes:
            - /app/node_modules/
        depends_on:
            - timescale
        command: npm run dev
        networks:
            - webappnetwork
    timescale:
        image: timescale/timescaledb-postgis:latest-pg11
        environment:
          - POSTGRES_USER=postgres
          - POSTGRES_PASSWORD=postgres
        command: ["postgres", "-c", "log_statement=all", "-c", "log_destination=stderr"]
        volumes:
          - ./create_schema.sql:/docker-entrypoint-initdb.d/create_schema.sql
        networks:
           - webappnetwork
    ping:
       image: willfarrell/ping
       environment:
           HOSTNAME: "localhost"
           TIMEOUT: 300
networks:
   webappnetwork:
       driver: bridge

Chun cumraíocht Docker Compose a bhainistiú agus idirghníomhú leis na coimeádáin a ndéanann sé cur síos orthu, cruthóimid an comhad seo a leanas Makefile:

THIS_FILE := $(lastword $(MAKEFILE_LIST))
.PHONY: help build up start down destroy stop restart logs logs-api ps login-timescale login-api db-shell
help:
        make -pRrq  -f $(THIS_FILE) : 2>/dev/null | awk -v RS= -F: '/^# File/,/^# Finished Make data base/ {if ($$1 !~ "^[#.]") {print $$1}}' | sort | egrep -v -e '^[^[:alnum:]]' -e '^$@$$'
build:
        docker-compose -f docker-compose.yml build $(c)
up:
        docker-compose -f docker-compose.yml up -d $(c)
start:
        docker-compose -f docker-compose.yml start $(c)
down:
        docker-compose -f docker-compose.yml down $(c)
destroy:
        docker-compose -f docker-compose.yml down -v $(c)
stop:
        docker-compose -f docker-compose.yml stop $(c)
restart:
        docker-compose -f docker-compose.yml stop $(c)
        docker-compose -f docker-compose.yml up -d $(c)
logs:
        docker-compose -f docker-compose.yml logs --tail=100 -f $(c)
logs-api:
        docker-compose -f docker-compose.yml logs --tail=100 -f api
ps:
        docker-compose -f docker-compose.yml ps
login-timescale:
        docker-compose -f docker-compose.yml exec timescale /bin/bash
login-api:
        docker-compose -f docker-compose.yml exec api /bin/bash
db-shell:
        docker-compose -f docker-compose.yml exec timescale psql -Upostgres

Baineann an chuid is mó de na horduithe a thuairiscítear anseo le gach coimeádán, ach ag baint úsáide as an rogha c= is féidir leat raon feidhme an ordaithe a theorannú go coimeádán amháin.

Tar éis Makefile réidh, is féidir leat é a úsáid mar seo:

  • make help — liosta de na horduithe go léir atá ar fáil a eisiúint make.

Docker Compose: Do Shaothar a Shimpliú ag Úsáid Comhaid Déanta
Cabhair maidir le horduithe atá ar fáil

  • make build - íomhá a chur le chéile ó Dockerfile. Inár sampla d’úsáideamar íomhánna a bhí ann cheana féin timescale и ping. Ach an íomhá api ba mhaith linn a bhailiú go háitiúil. Is é seo go díreach cad a dhéanfar tar éis an t-ordú seo a fhorghníomhú.

Docker Compose: Do Shaothar a Shimpliú ag Úsáid Comhaid Déanta
Tógáil coimeádán Docker

  • make start — gach coimeádán a sheoladh. Chun coimeádán amháin a sheoladh, is féidir leat ordú mar make start c=timescale.

Docker Compose: Do Shaothar a Shimpliú ag Úsáid Comhaid Déanta
Rith an coimeádán scála ama

Docker Compose: Do Shaothar a Shimpliú ag Úsáid Comhaid Déanta
Coimeádán ping a rith

  • make login-timescale — logáil isteach chuig seisiún bash an choimeádáin timescale.

Docker Compose: Do Shaothar a Shimpliú ag Úsáid Comhaid Déanta
Rith bash i gcoimeádán scála ama

  • make db-shell - bealach isteach chuig psql i gcoimeádán timescale chun fiosrúcháin SQL a fhorghníomhú i gcoinne an bhunachair sonraí.

Docker Compose: Do Shaothar a Shimpliú ag Úsáid Comhaid Déanta
Rith psql i gcoimeádán amscála

  • make stop — coimeádáin a stopadh.

Docker Compose: Do Shaothar a Shimpliú ag Úsáid Comhaid Déanta
Coimeádán scála ama a stopadh

  • make down — coimeádáin a stopadh agus a bhaint. Chun coimeádán ar leith a bhaint, is féidir leat an t-ordú seo a úsáid lena sonraítear an coimeádán atá uait. Mar shampla - make down c=timescalemake down c=api.

Docker Compose: Do Shaothar a Shimpliú ag Úsáid Comhaid Déanta
Gach coimeádán a stopadh agus a scriosadh

Torthaí

Cé go dtugann Docker Compose sraith saibhir orduithe dúinn chun coimeádáin a bhainistiú, uaireanta is féidir leis na horduithe seo a bheith fada agus deacair a mheabhrú.

Modh úsáide Makefile chabhraigh sé linn idirghníomhú tapa agus éasca a bhunú le coimeádáin ó chomhad docker-compose.yml. Eadhon, táimid ag caint faoi na nithe seo a leanas:

  • Ní idirghníomhaíonn an forbróir ach leis na coimeádáin tionscadail a thuairiscítear i docker-compose.yml, ní chuireann coimeádáin reatha eile isteach ar an obair.
  • Sa chás go ndéantar dearmad ar ordú áirithe, is féidir leat an t-ordú a fhorghníomhú make help agus cabhair a fháil ar orduithe atá ar fáil.
  • Ní gá duit cuimhneamh ar liostaí fada argóintí chun gníomhartha a dhéanamh mar na hiontrálacha logála is déanaí a fháil nó logáil isteach i gcóras. Mar shampla, ordú cosúil le docker-compose -f docker-compose.yml exec timescale psql -Upostgres casadh isteach make db-shell.
  • comhad Makefile Is féidir leat a chur in oiriúint go solúbtha dó de réir mar a fhásann an tionscadal. Mar shampla, tá sé éasca ordú a chur leis chun cúltaca bunachar sonraí a chruthú nó aon ghníomh eile a dhéanamh.
  • Má úsáideann foireann mhór forbróirí mar an gcéanna Makefile, déanann sé seo comhar a chuíchóiriú agus laghdaítear earráidí.

PS Inár margadh tá íomhá dhugaire, is féidir a shuiteáil i gceann cliceáil. Is féidir leat oibriú coimeádáin a sheiceáil ag VPS. Tugtar 3 lá tástála saor in aisce do gach cliant nua.

Léitheoirí a chara! Conas a dhéanann tú Docker Compose a uathoibriú?

Docker Compose: Do Shaothar a Shimpliú ag Úsáid Comhaid Déanta

Foinse: will.com

Add a comment