diff --git a/alpine/Dockerfile b/alpine/Dockerfile new file mode 100644 index 0000000..c230188 --- /dev/null +++ b/alpine/Dockerfile @@ -0,0 +1,21 @@ +# Etapa 1: Construção +FROM alpine:3.18 AS builder + +RUN apk update && apk add --no-cache nginx + +COPY index.html /var/www/html/ + +# Etapa 2: Imagem final +FROM alpine:3.18 + +COPY --from=builder /etc/nginx /etc/nginx +COPY --from=builder /usr/sbin/nginx /usr/sbin/nginx +COPY --from=builder /var/www/html /var/www/html + +EXPOSE 80 + +WORKDIR /var/www/html/ + +CMD ["nginx", "-g", "daemon off;"] + +ENV APP_VERSION 1.0.0 \ No newline at end of file diff --git a/alpine/index.html b/alpine/index.html new file mode 100644 index 0000000..c391744 --- /dev/null +++ b/alpine/index.html @@ -0,0 +1,20 @@ + + + + + Programa Intensivo em Containers e Kubernetes da LINUXtips + + + +

Programa Intensivo em Containers e Kubernetes da LINUXtips!

+ +

Com o Programa Intensivo em Containers e Kubernetes da LINUXtips, voce tera acesso a uma formacao completa e + totalmente pratica, que nao apenas transfere conhecimento, mas tambem prepara voce para enfrentar desafios reais + no mundo real.

+ + +

Confira o meu repositorio no GitHub: https://github.com/Tech-Preta/pick

+ + + \ No newline at end of file diff --git a/distroless/Dockerfile b/distroless/Dockerfile new file mode 100644 index 0000000..3c40b96 --- /dev/null +++ b/distroless/Dockerfile @@ -0,0 +1,25 @@ +FROM cgr.dev/chainguard/python:latest-dev as builder + +ENV LANG=C.UTF-8 +ENV PYTHONDONTWRITEBYTECODE=1 +ENV PYTHONUNBUFFERED=1 +ENV PATH="/linky/venv/bin:$PATH" + +WORKDIR /linky + +RUN python -m venv /linky/venv +COPY requirements.txt . + +RUN pip install --no-cache-dir -r requirements.txt + +FROM cgr.dev/chainguard/python:latest + +WORKDIR /linky + +ENV PYTHONUNBUFFERED=1 +ENV PATH="/venv/bin:$PATH" + +COPY linky.py linky.png ./ +COPY --from=builder /linky/venv /venv + +ENTRYPOINT [ "python", "/linky/linky.py" ] diff --git a/distroless/linky.png b/distroless/linky.png new file mode 100644 index 0000000..a600578 Binary files /dev/null and b/distroless/linky.png differ diff --git a/distroless/linky.py b/distroless/linky.py new file mode 100644 index 0000000..8e65b0e --- /dev/null +++ b/distroless/linky.py @@ -0,0 +1,11 @@ +'''import climage module to display images on terminal''' +from climage import convert + + +def main(): + '''Take in PNG and output as ANSI to terminal''' + output = convert('linky.png', is_unicode=True) + print(output) + +if __name__ == "__main__": + main() diff --git a/distroless/requirements.txt b/distroless/requirements.txt new file mode 100644 index 0000000..12de7da --- /dev/null +++ b/distroless/requirements.txt @@ -0,0 +1,2 @@ +setuptools==68.2.2 +climage==0.2.0 diff --git a/multi-stage/Dockerfile b/multi-stage/Dockerfile new file mode 100644 index 0000000..c5f407f --- /dev/null +++ b/multi-stage/Dockerfile @@ -0,0 +1,38 @@ + +# Etapa 1: Construção +FROM ubuntu:22.04 AS builder +# A instrução FROM especifica a imagem base para a etapa de construção. +# Neste caso, utiliza a imagem do Ubuntu 22.04 como base. + +# Instala o servidor web Nginx e outras dependências necessárias +RUN apt-get update && apt-get install -y nginx && rm -rf /var/lib/apt/lists/* +# Este comando Dockerfile instala o servidor web Nginx no contêiner. +# Ele atualiza o sistema operacional e, em seguida, usa o comando apt-get para instalar o pacote nginx. +# O parâmetro "-y" é usado para confirmar automaticamente todas as perguntas de instalação. +# Por fim, o comando "rm -rf /var/lib/apt/lists/*" remove os arquivos de lista de pacotes desnecessários para economizar espaço em disco. + +# Copia o arquivo index.html para o diretório /var/www/html/ dentro do container +COPY index.html /var/www/html/ + +# Etapa 2: Imagem final +FROM ubuntu:22.04 +# A instrução FROM especifica a imagem base para a imagem final. +# Neste caso, utiliza a imagem do Ubuntu 22.04 como base. + +# Copia o Nginx instalado e o arquivo index.html da etapa de construção para a imagem final +COPY --from=builder /etc/nginx /etc/nginx +COPY --from=builder /usr/sbin/nginx /usr/sbin/nginx +COPY --from=builder /var/www/html /var/www/html + +# Expõe a porta 80 para tráfego HTTP. +EXPOSE 80 + +# Define o diretório de trabalho como /var/www/html/ dentro do container +WORKDIR /var/www/html/ + +# O comando CMD especifica o comando a ser executado quando o contêiner é iniciado. +# Neste caso, inicia o servidor Nginx com a opção "daemon off;", que mantém o processo em execução em primeiro plano. +CMD ["nginx", "-g", "daemon off;"] + +# Define a variável de ambiente APP_VERSION com o valor 1.0.0. +ENV APP_VERSION 1.0.0 diff --git a/multi-stage/index.html b/multi-stage/index.html new file mode 100644 index 0000000..c391744 --- /dev/null +++ b/multi-stage/index.html @@ -0,0 +1,20 @@ + + + + + Programa Intensivo em Containers e Kubernetes da LINUXtips + + + +

Programa Intensivo em Containers e Kubernetes da LINUXtips!

+ +

Com o Programa Intensivo em Containers e Kubernetes da LINUXtips, voce tera acesso a uma formacao completa e + totalmente pratica, que nao apenas transfere conhecimento, mas tambem prepara voce para enfrentar desafios reais + no mundo real.

+ + +

Confira o meu repositorio no GitHub: https://github.com/Tech-Preta/pick

+ + + \ No newline at end of file diff --git a/traditional/Dockerfile b/traditional/Dockerfile new file mode 100644 index 0000000..bd293b3 --- /dev/null +++ b/traditional/Dockerfile @@ -0,0 +1,14 @@ + +FROM ubuntu:18.04 + +RUN apt-get update && apt-get install nginx -y && rm -rf /var/lib/apt/lists/* + +EXPOSE 80 + +COPY index.html /var/www/html/ + +WORKDIR /var/www/html/ + +CMD ["nginx", "-g", "daemon off;"] + +ENV APP_VERSION 1.0.0 \ No newline at end of file diff --git a/traditional/index.html b/traditional/index.html new file mode 100644 index 0000000..c391744 --- /dev/null +++ b/traditional/index.html @@ -0,0 +1,20 @@ + + + + + Programa Intensivo em Containers e Kubernetes da LINUXtips + + + +

Programa Intensivo em Containers e Kubernetes da LINUXtips!

+ +

Com o Programa Intensivo em Containers e Kubernetes da LINUXtips, voce tera acesso a uma formacao completa e + totalmente pratica, que nao apenas transfere conhecimento, mas tambem prepara voce para enfrentar desafios reais + no mundo real.

+ + +

Confira o meu repositorio no GitHub: https://github.com/Tech-Preta/pick

+ + + \ No newline at end of file