Docker: Elementos de uma arquivo Dockerfile: Difference between revisions

From Wiki
No edit summary
 
(16 intermediate revisions by the same user not shown)
Line 1: Line 1:
Vamos pegar por exemplo o arquivo Dockerfile abaixo:
Um Dockerfile é um lista de instruções para a criação da imagem e do respectivo container. Exemplo:


  FROM ubuntu:12.04
  FROM python:3.6.1-alpine
# add the files we require, jar + WLP files
  RUN pip install flask
ADD wlp-developers-extended-8.5.5.2.jar /root/
  COPY app.py /app.py
ADD wlp-developers-runtime-8.5.5.2.jar /root/
  CMD ["python","app.py"]
ADD JAXWSEJBSample.jar /root/
# install WLP
RUN apt-get update
  RUN apt-get install -y default-jre
  RUN java -jar /root/wlp-developers-runtime-8.5.5.2.jar --acceptLicense /root/
RUN java -jar /root/wlp-developers-extended-8.5.5.2.jar --acceptLicense /root/
  RUN cd /root/wlp && java -jar ../JAXWSEJBSample.jar /root/wlp
EXPOSE 9080
CMD /root/wlp/bin/server run JAXWSEJBSample


* '''FROM''' ubuntu:12.04
 
= Comandos do arquivo DockerFile=
 
== FROM ==


Informo que a docker image vai ter como ''base layer'' o ubuntu:12.04
Informo que a docker image vai ter como ''base layer'' o ubuntu:12.04


* '''RUN''' apt-get update
'''FROM''' ubuntu:12.04
 
== RUN ==


O comando RUN executa um comando ao necessário na montagem do container.
O comando RUN executa um comando ao necessário na montagem do container.


* '''CMD''' /root/wlp/bin/server '''run''' JAXWSEJBSample ''ou'' '''CMD''' ["python","app.py"]
'''RUN''' apt-get update
 
== CMD ==
 
CMD é o comando que é executado ao iniciar o container.
 
'''CMD''' /root/wlp/bin/server '''run''' JAXWSEJBSample ''ou'' '''CMD''' ["python","app.py"]
 
== ADD ==
 
Copia o arquivo para dentro do container
 
'''ADD''' wlp-developers-extended-8.5.5.2.jar /root/
 
== COPY ==
 
Copia o arquivo para dentro do container
 
'''COPY''' app.py /app.py
 
== ENV ==
 
Define variáveis de ambiente
 
ENV REPOSITORY_URL=<nowiki>http://192.168.1.1</nowiki>
ENV LANG=en_US.UTF-8
 
== EXPOSE ==
 
Expõe o serviço na porta 9080
 
'''EXPOSE''' 9080
 
== LABEL ==
 
Define metadados para a imagem
 
'''LABEL''' title="Container XYZ"
'''LABEL''' version="1.0"
'''LABEL''' description="This text ...."
 
== STOPSIGNAL ==
 
== USER ==
 
A instração USR define o usuário/uid e o group/gid para ser usado ao executar a imagem e para qualquer instrução RUN, CMD e ENTRYPOINT que a segue no Dockerfile.
 
'''USER''' <user>[:<group>] or
'''USER''' <UID>[:<GID>]
 
== VOLUME ==
 
A instrução VOLUME é server para compartilhar um diretório do filesystem do host e o filesystem do container.
 
'''VOLUME''' ["/path1/", "/path2/"]


CMD é o comando que é executado ao iniciar o container.
== WORKDIR ==


* '''ADD''' wlp-developers-extended-8.5.5.2.jar /root/
A instrução WORKDIR, define o diretório de trabalho para qualquer comando RUN, CMD, ENTRYPOINT, COPY e ADD.


  Copia o arquivo para dentro do container
  ''VOLUME''' /software


* '''COPY''' app.py /app.py
Se o diretório de trabalho não existir, ele é criado.


Copia o arquivo para dentro do container
= Ver também =


* '''EXPOSE''' 9080
* [[DevOps#Docker|Artigos sobre Docker]]
* [[DevOps|Artigos sobre DevOps]]
* [[Cloud| Artigos sobre Cloud]]


Expõe o serviço na porta 9080
[[Category:Docker]]
[[Category:DevOps]]
[[Category:Cloud]]
[[Category:Tecnologias]]

Latest revision as of 00:24, 27 September 2018

Um Dockerfile é um lista de instruções para a criação da imagem e do respectivo container. Exemplo:

FROM python:3.6.1-alpine
RUN pip install flask
COPY app.py /app.py
CMD ["python","app.py"]


Comandos do arquivo DockerFile

FROM

Informo que a docker image vai ter como base layer o ubuntu:12.04

FROM ubuntu:12.04

RUN

O comando RUN executa um comando ao necessário na montagem do container.

RUN apt-get update

CMD

CMD é o comando que é executado ao iniciar o container.

CMD /root/wlp/bin/server run JAXWSEJBSample ou CMD ["python","app.py"]

ADD

Copia o arquivo para dentro do container

ADD wlp-developers-extended-8.5.5.2.jar /root/

COPY

Copia o arquivo para dentro do container

COPY app.py /app.py

ENV

Define variáveis de ambiente

ENV REPOSITORY_URL=http://192.168.1.1
ENV LANG=en_US.UTF-8

EXPOSE

Expõe o serviço na porta 9080

EXPOSE 9080

LABEL

Define metadados para a imagem

LABEL title="Container XYZ"
LABEL version="1.0"
LABEL description="This text ...."

STOPSIGNAL

USER

A instração USR define o usuário/uid e o group/gid para ser usado ao executar a imagem e para qualquer instrução RUN, CMD e ENTRYPOINT que a segue no Dockerfile.

USER <user>[:<group>] or
USER <UID>[:<GID>]

VOLUME

A instrução VOLUME é server para compartilhar um diretório do filesystem do host e o filesystem do container.

VOLUME ["/path1/", "/path2/"]

WORKDIR

A instrução WORKDIR, define o diretório de trabalho para qualquer comando RUN, CMD, ENTRYPOINT, COPY e ADD.

VOLUME' /software

Se o diretório de trabalho não existir, ele é criado.

Ver também