Ciao!\n\nQualche giorno fa ho iniziato a imparare Discourse e non ho trovato un Dockerfile per i chip Apple/M. Quindi ne ho creato uno mio e vorrei condividerlo con chiunque voglia anche mantenere il controllo sulla propria immagine.\n\nInoltre, con questo post vorrei imparare come funzionano Discourse e la community. Spero che troviate utile il mio post. Siete i benvenuti a fornire qualsiasi feedback/pensiero/domanda sul mio Dockerfile.\n\nIl mio Dockerfile è per i chip Apple/M, ma può essere facilmente modificato \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# INSTALLA DIPENDENZE\n#\n# build-essential - Strumenti essenziali per la compilazione del software\n# libxslt1-dev - Libreria per l'elaborazione XSLT\n# libcurl4-openssl-dev - Libreria per richieste HTTP con supporto SSL\n# libksba8 - Librerie per funzionalità crittografiche\n# libksba-dev - Librerie per funzionalità crittografiche\n# libreadline-dev - Libreria per GNU readline (riga di comando interattiva)\n# libssl-dev - Libreria di supporto SSL/TLS\n# zlib1g-dev - Libreria di compressione\n# libsnappy-dev - Libreria di compressione Snappy\n# libyaml-dev - Libreria di parsing YAML\n# libpq-dev - Libreria client PostgreSQL per connessioni al database\n# postgresql-client - Client PostgreSQL per interagire con database PostgreSQL remoti\n# telnet - Strumento per testare servizi di rete\n# nano - Editor di testo da riga di comando\n# git - Sistema di controllo versione Git\n# net-tools - Utilità per diagnosticare e testare connessioni di rete\n# dnsutils - Strumenti per query DNS\n# iputils-ping - Utilità per eseguire il ping degli host e testare la connettività\n# curl - Strumento da riga di comando Curl per trasferire dati con URL\n# wget - Strumento da riga di comando Wget per scaricare file\n# tzdata - Dati del fuso orario per la gestione dei fusi orari\n# advancecomp - Strumenti per l'ottimizzazione di file PNG e MNG\n# jhead - Strumento per visualizzare e manipolare dati Exif\n# jpegoptim - Strumento per l'ottimizzazione di file JPEG\n# libjpeg-turbo-progs - Strumenti per l'ottimizzazione di file JPEG\n# optipng - Strumento per l'ottimizzazione di file PNG\n# pngcrush - Strumento per l'ottimizzazione di file PNG\n# pngquant - Strumento per l'ottimizzazione di file PNG\n# gnupg2 - GNU Privacy Guard per comunicazioni sicure e archiviazione dati\n# libjpeg-dev - File di sviluppo per la libreria JPEG\n# libpng-dev - File di sviluppo per la libreria PNG\n# libtiff-dev - File di sviluppo per la libreria TIFF\n# libwebp-dev - File di sviluppo per la libreria WebP\n# libxml2-dev - File di sviluppo per la libreria XML\n# libltdl-dev - File di sviluppo per la libreria libtool\n# libfreetype6-dev - File di sviluppo per la libreria FreeType\n# liblcms2-dev - File di sviluppo per la libreria Little CMS\n# liblqr-1-0-dev - File di sviluppo per la libreria Liquid Rescale\n# libfftw3-dev - File di sviluppo per la libreria Fastest Fourier Transform in the West\n# ghostscript - Interprete per il linguaggio 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# DIRECTORY DI LAVORO\n#\nWORKDIR /tmp\n\n# Scarica e installa 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 - OTTIMIZZA FILE PNG (ARM64)\n# Scegli la tua piattaforma specifica e installa il pacchetto richiesto\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# INSTALLA 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# DIRECTORY DI LAVORO\n#\nWORKDIR /app\n\n# INSTALLA DIPENDENZE 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# INSTALLA DIPENDENZE 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\nDopo aver eseguito il container puoi avviare il progetto usando semplicemente\n\nsh\nbin/ember-cli -u\n\n\nBuona codifica!
2 Mi Piace