Aplicação construída em Node.js com dependências de bibliotecas. Será necessário instalar o Node.js utilizando a imagem Ubuntu como base e copiar o projeto para dentro do container.
$ touch Dockerfile
$ vim Dockerfile
Instrução para instalação do Node.js:
Comandos para instalação do Node.js para serem escritos no Dockerfile:
# imagem base
FROM ubuntu
# instalacao do node.js
RUN apt-get update && \
apt-get install -y curl && \
curl -fsSL https://deb.nodesource.com/setup_22.x -o nodesource_setup.sh && \
bash -E nodesource_setup.sh && \
apt-get update && \
apt-get install -y nodejs
# diretorio de trabalho
WORKDIR /app
# copiar a aplicacao
COPY . .
# instalar as dependencias
RUN npm install
# execucao do comando para iniciar a aplicacao
ENTRYPOINT [ "node", "server.js" ]
Construção da imagem:
$ docker build -t conversao-temperatura-dockerfile -f Dockerfile .
[+] Building 41.8s (10/10) FINISHED docker:default
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 520B 0.0s
=> [internal] load metadata for docker.io/library/ubuntu:latest 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 54B 0.0s
=> [internal] load build context 0.0s
=> => transferring context: 409B 0.0s
=> CACHED [1/5] FROM docker.io/library/ubuntu:latest 0.0s
=> [2/5] RUN apt-get update && apt-get install -y curl && cur 38.0s
=> [3/5] WORKDIR /app 0.0s
=> [4/5] COPY . . 0.0s
=> [5/5] RUN npm install 2.4s
=> exporting to image 1.2s
=> => exporting layers 1.1s
=> => writing image sha256:4c32eaa602c1a3fb555018df5910f819d7061b0c708 0.0s
=> => naming to docker.io/library/conversao-temperatura-dockerfile 0.0s
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
conversao-temperatura-dockerfile latest 4c32eaa602c1 3 minutes ago 381MB
Execução do container:
$ docker container run -d -p 8080:8080 conversao-temperatura-dockerfile
66c11f8be7b7be0fb28b8176d474833a8cea14bae919f6ddb8e66b4b1a330342
$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
66c11f8be7b7 conversao-temperatura-dockerfile "node server.js" 5 seconds ago Up 4 seconds 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp eloquent_haslett