Hallo!\n\nVor ein paar Tagen habe ich angefangen, Discourse zu lernen und habe keinen Dockerfile für Apple/M-Chips gefunden. Also habe ich meinen eigenen erstellt und möchte ihn mit allen teilen, die auch die Kontrolle über ihr eigenes Image behalten möchten.\n\nMit diesem Beitrag möchte ich auch lernen, wie Discourse und die Community funktionieren. Ich hoffe, Sie finden meinen Beitrag hilfreich. Sie können gerne Feedback/Gedanken/Fragen zu meinem Dockerfile geben.\n\nMein Dockerfile ist für Apple/M-Chips, kann aber leicht modifiziert werden \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# INSTALL DEPENDENCIES\n#\n# build-essential - Essential build tools for compiling software\n# libxslt1-dev - Library for XSLT processing\n# libcurl4-openssl-dev - Library for HTTP requests with SSL support\n# libksba8 - Libraries for cryptographic functionality\n# libksba-dev - Libraries for cryptographic functionality\n# libreadline-dev - Library for GNU readline (interactive command line)\n# libssl-dev - SSL/TLS support library\n# zlib1g-dev - Compression library\n# libsnappy-dev - Snappy compression library\n# libyaml-dev - YAML parsing library\n# libpq-dev - PostgreSQL client library for database connections\n# postgresql-client - PostgreSQL client for interacting with remote PostgreSQL databases\n# telnet - Tool for testing network services\n# nano - Command-line text editor\n# git - Git version control system\n# net-tools - Utilities for diagnosing and testing network connections\n# dnsutils - Tools for DNS queries\n# iputils-ping - Utilities for pinging hosts and testing connectivity\n# curl - Curl command-line tool for transferring data with URLs\n# wget - Wget command-line tool for downloading files\n# tzdata - Timezone data for managing time zones\n# advancecomp - Tools for optimizing PNG and MNG files\n# jhead - Tool for displaying and manipulating Exif data\n# jpegoptim - Tool for optimizing JPEG files\n# libjpeg-turbo-progs - Tools for optimizing JPEG files\n# optipng - Tool for optimizing PNG files\n# pngcrush - Tool for optimizing PNG files\n# pngquant - Tool for optimizing PNG files\n# gnupg2 - GNU Privacy Guard for secure communication and data storage\n# libjpeg-dev - Development files for the JPEG library\n# libpng-dev - Development files for the PNG library\n# libtiff-dev - Development files for the TIFF library\n# libwebp-dev - Development files for the WebP library\n# libxml2-dev - Development files for the XML library\n# libltdl-dev - Development files for the libtool library\n# libfreetype6-dev - Development files for the FreeType library\n# liblcms2-dev - Development files for the Little CMS library\n# liblqr-1-0-dev - Development files for the Liquid Rescale library\n# libfftw3-dev - Development files for the Fastest Fourier Transform in the West library\n# ghostscript - Interpreter for the PostScript language and 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# WORKING DIRECTORY\n#\nWORKDIR /tmp\n\n# Download and install 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 - OPTIMIZE PNG FILES (ARM64)\n# Choose you specific platform and install required package\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# INSTALL NODEJS AND PNPM AND 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# WORKING DIRECTORY\n#\nWORKDIR /app\n\n# INSTALL RUBY ON RAILS DEPENDENCIES\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# INSTALL NODEJS DEPENDENCIES\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\nNach dem Ausführen des Containers können Sie das Projekt mit einem einfachen Befehl starten\n\nsh\nbin/ember-cli -u\n\n\nViel Spaß beim Programmieren!
2 „Gefällt mir“