Olá!\n\nHá alguns dias comecei a aprender Discourse e não encontrei um Dockerfile para chips Apple/M. Então, criei o meu e gostaria de compartilhá-lo com quem também quiser ter controle sobre sua própria imagem.\n\nTambém, com este post, gostaria de aprender como funcionam o Discourse e a comunidade. Espero que achem meu post útil. Sintam-se à vontade para fornecer qualquer feedback/pensamento/dúvida sobre meu Dockerfile.\n\nMeu Dockerfile é para chips Apple/M, mas pode ser facilmente modificado \n\nDockerfile\n# https://meta.discourse.org/t/install-discourse-on-ubuntu-or-debian-for-development/14727/1\n# bash <(wget -qO- https://raw.githubusercontent.com/discourse/install-rails/main/linux)\n# https://github.com/discourse/discourse/blob/main/docs/DEVELOPER-ADVANCED.md\n\nFROM ruby:3.2-bookworm\n\nARG PROJECT_PATH=${PROJECT_PATH:-discourse}\n\n# INSTALAR DEPENDÊNCIAS\n#\n# build-essential - Ferramentas essenciais de compilação para compilar software\n# libxslt1-dev - Biblioteca para processamento XSLT\n# libcurl4-openssl-dev - Biblioteca para requisições HTTP com suporte SSL\n# libksba8 - Bibliotecas para funcionalidade criptográfica\n# libksba-dev - Bibliotecas para funcionalidade criptográfica\n# libreadline-dev - Biblioteca para GNU readline (linha de comando interativa)\n# libssl-dev - Biblioteca de suporte SSL/TLS\n# zlib1g-dev - Biblioteca de compressão\n# libsnappy-dev - Biblioteca de compressão Snappy\n# libyaml-dev - Biblioteca de análise YAML\n# libpq-dev - Biblioteca cliente PostgreSQL para conexões com banco de dados\n# postgresql-client - Cliente PostgreSQL para interagir com bancos de dados PostgreSQL remotos\n# telnet - Ferramenta para testar serviços de rede\n# nano - Editor de texto em linha de comando\n# git - Sistema de controle de versão Git\n# net-tools - Utilitários para diagnosticar e testar conexões de rede\n# dnsutils - Ferramentas para consultas DNS\n# iputils-ping - Utilitários para pingar hosts e testar conectividade\n# curl - Ferramenta de linha de comando Curl para transferir dados com URLs\n# wget - Ferramenta de linha de comando Wget para baixar arquivos\n# tzdata - Dados de fuso horário para gerenciar fusos horários\n# advancecomp - Ferramentas para otimizar arquivos PNG e MNG\n# jhead - Ferramenta para exibir e manipular dados Exif\n# jpegoptim - Ferramenta para otimizar arquivos JPEG\n# libjpeg-turbo-progs - Ferramentas para otimizar arquivos JPEG\n# optipng - Ferramenta para otimizar arquivos PNG\n# pngcrush - Ferramenta para otimizar arquivos PNG\n# pngquant - Ferramenta para otimizar arquivos PNG\n# gnupg2 - GNU Privacy Guard para comunicação segura e armazenamento de dados\n# libjpeg-dev - Arquivos de desenvolvimento para a biblioteca JPEG\n# libpng-dev - Arquivos de desenvolvimento para a biblioteca PNG\n# libtiff-dev - Arquivos de desenvolvimento para a biblioteca TIFF\n# libwebp-dev - Arquivos de desenvolvimento para a biblioteca WebP\n# libxml2-dev - Arquivos de desenvolvimento para a biblioteca XML\n# libltdl-dev - Arquivos de desenvolvimento para a biblioteca libtool\n# libfreetype6-dev - Arquivos de desenvolvimento para a biblioteca FreeType\n# liblcms2-dev - Arquivos de desenvolvimento para a biblioteca Little CMS\n# liblqr-1-0-dev - Arquivos de desenvolvimento para a biblioteca Liquid Rescale\n# libfftw3-dev - Arquivos de desenvolvimento para a biblioteca Fastest Fourier Transform in the West\n# ghostscript - Interpretador para a linguagem PostScript e PDF\n#\nRUN apt-get update -qq && apt-get install -y \\\n build-essential \\\n libxslt1-dev \\\n libcurl4-openssl-dev \\\n libksba8 \\\n libksba-dev \\\n libreadline-dev \\\n libssl-dev \\\n zlib1g-dev \\\n libsnappy-dev \\\n libyaml-dev \\\n libpq-dev \\\n postgresql-client \\\n telnet \\\n nano \\\n git \\\n net-tools \\\n dnsutils \\\n iputils-ping \\\n curl \\\n wget \\\n tzdata \\\n advancecomp \\\n jhead \\\n jpegoptim \\\n libjpeg-turbo-progs \\\n optipng \\\n pngcrush \\\n pngquant \\\n gnupg2 \\\n libjpeg-dev \\\n libpng-dev \\\n libtiff-dev \\\n libwebp-dev \\\n libxml2-dev \\\n libltdl-dev \\\n libfreetype6-dev \\\n liblcms2-dev \\\n liblqr-1-0-dev \\\n libfftw3-dev \\\n ghostscript \\\n && rm -rf /var/lib/apt/lists/*\n\n# DIRETÓRIO DE TRABALHO\n#\nWORKDIR /tmp\n\n# Baixar e instalar ImageMagick 7\nRUN cd /tmp && wget https://imagemagick.org/download/ImageMagick.tar.gz && \\\n tar xvzf ImageMagick.tar.gz && \\\n cd ImageMagick-* && \\\n ./configure && \\\n make && \\\n make install && \\\n ldconfig /usr/local/lib && \\\n cd .. && \\\n rm -rf ImageMagick* && \\\n magick --version\n\n# OXIPNG - OTIMIZAR ARQUIVOS PNG (ARM64)\n# Escolha sua plataforma específica e instale o pacote necessário\n# https://github.com/shssoichiro/oxipng/releases/\nRUN wget https://github.com/shssoichiro/oxipng/releases/download/v9.1.3/oxipng_9.1.3-1_arm64.deb\nRUN dpkg -i oxipng_9.1.3-1_arm64.deb\n\nSHELL [\"/bin/bash\", \"-c\"]\n\n# INSTALAR NODEJS E PNPM E YARN\n#\nRUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash\nRUN source /root/.nvm/nvm.sh && nvm install lts/hydrogen --default\n\n# RUN source /root/.nvm/nvm.sh && \\\n# corepack enable pnpm && \\\n# corepack use pnpm@9\n\nRUN source /root/.nvm/nvm.sh && \\\n npm install -g yarn\n\n# DIRETÓRIO DE TRABALHO\n#\nWORKDIR /app\n\n# INSTALAR DEPENDÊNCIAS DO RUBY ON RAILS\n#\nRUN gem install bundler -v 2.5.9\n\nCOPY ${PROJECT_PATH}/Gemfile /app/Gemfile\nCOPY ${PROJECT_PATH}/Gemfile.lock /app/Gemfile.lock\n\nRUN bundle install --frozen\n\n# INSTALAR DEPENDÊNCIAS DO NODEJS\n#\nRUN source /root/.nvm/nvm.sh && npm install -g svgo\n\nCOPY ${PROJECT_PATH}/package.json /app/package.json\nCOPY ${PROJECT_PATH}/patches /app/patches\n\nRUN source /root/.nvm/nvm.sh && yarn -v\n\n\nApós executar o container você pode iniciar o projeto usando o simples\n\nsh\nbin/ember-cli -u\n\n\nBoas codificações!
2 curtidas