FROM node:14-alpine RUN apk add curl WORKDIR /opt/app ADD index.js . HEALTHCHECK --interval=5s --timeout=5s --start-period=5s --retries=3 \ CMD curl -f http://localhost:3000 || exit 1 CMD ["node", "./index.js"]
vagrant@server3:~/docker-demo-3$ docker build -t localhost:5000/ip . [+] Building 0.6s (9/9) FINISHED docker:default => [internal] load build definition from Dockerfile 0.0s => => transferring dockerfile: 253B 0.0s => [internal] load .dockerignore 0.0s => => transferring context: 2B 0.0s => [internal] load metadata for docker.io/library/node:14-alpine 0.5s => [1/4] FROM docker.io/library/node:14-alpine@sha256:434215b487a329c9e867202ff89e704d3a75e554822e07f3e0c0f9e60612 0.0s => [internal] load build context 0.0s => => transferring context: 30B 0.0s => CACHED [2/4] RUN apk add curl 0.0s => CACHED [3/4] WORKDIR /opt/app 0.0s => CACHED [4/4] ADD index.js . 0.0s => exporting to image 0.0s => => exporting layers 0.0s => => writing image sha256:bdd5cca7f48f751ec268ee53d60f6f854fa7e29086ec6d9a959ff9eb5d8736ee 0.0s => => naming to localhost:5000/ip vagrant@server3:~/docker-demo-3$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE localhost:5000/ip latest bdd5cca7f48f 2 days ago 124MB
vagrant@server3:~/docker-demo-3$ docker push localhost:5000/ip:latest The push refers to repository [localhost:5000/ip] 18cafcc3f78c: Layer already exists ec5ff2197706: Layer already exists 31e6ec6c7217: Layer already exists 31f710dc178f: Layer already exists a599bf3e59b8: Layer already exists e67e8085abae: Layer already exists f1417ff83b31: Layer already exists latest: digest: sha256:ccf258012f5ea966b9790347191a3938482f1d06fdf20fe0c5c4bac8fee2121b size: 1783
vagrant@server3:~/docker-demo-3$ docker service create --name ip localhost:5000/ip w6p7q77cz3qk8jyrmz8fzzkdg overall progress: 1 out of 1 tasks 1/1: running [==================================================>] verify: Service converged vagrant@server3:~/docker-demo-3$ docker service ls ID NAME MODE REPLICAS IMAGE PORTS w6p7q77cz3qk ip replicated 1/1 localhost:5000/ip:latest 3srd0mspdl9a registry replicated 1/1 registry:latest *:5000->5000/tcp
vagrant@server2:~$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 95c7d28a432d localhost:5000/ip:latest "docker-entrypoint.s…" 47 seconds ago Up 46 seconds (healthy) ip.1.rtlwee6rg8unsos6okhpgkl7g
видим что контейнер рабочий - healthy