From 07c7c05c477a36085945601523a117b0b3b6b842 Mon Sep 17 00:00:00 2001 From: NW Date: Tue, 23 Jan 2024 11:03:58 +0000 Subject: [PATCH] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B8=D0=BB(?= =?UTF-8?q?=D0=B0)=20=D0=BD=D0=B0=20'Dockerfile'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 77 ++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 57 insertions(+), 20 deletions(-) diff --git a/Dockerfile b/Dockerfile index 9f2b036..1e5c977 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,28 +3,65 @@ MAINTAINER Like Ma ENV DEBIAN_FRONTEND noninteractive -RUN set -eux; \ - apt-get update; \ - apt-get install -y --no-install-recommends sudo sshpass ruby \ - glusterfs-client nodejs-legacy netbase \ - ruby-dev npm git make g++ libsqlite3-dev; \ - npm install -g bower; \ - echo "gem: --no-rdoc --no-ri" > ~/.gemrc; \ - gem install bundler; \ - git clone https://github.com/oss2016summer/gluster-web-interface.git \ - /gluster-web; \ - cd /gluster-web; \ - bower install --allow-root; \ - echo "gem 'tzinfo-data'" >> Gemfile; \ - bundle install; \ - bin/rake db:migrate; \ - apt-get clean; \ - rm -rf /var/lib/apt/lists/* /tmp/* Gemfile.* ~/.gem ~/.bundle \ - /usr/lib/ruby/gems/2.3.0/cache; \ - apt-get remove --purge -y ruby-dev npm git make g++ libsqlite3-dev; \ - apt-get autoremove --purge -y +# Установка необходимых пакетов и зависимостей +RUN apt-get update && apt-get install -y apt-utils libffi-dev --no-install-recommends \ + sudo sshpass curl git-core zlib1g-dev build-essential \ + libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 \ + libxml2-dev libxslt1-dev libcurl4-openssl-dev python-software-properties \ + nodejs npm +# Установка rbenv и ruby-build +RUN git clone https://github.com/rbenv/rbenv.git ~/.rbenv && \ + git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build && \ + export PATH="$HOME/.rbenv/bin:$HOME/.rbenv/plugins/ruby-build/bin:$PATH" && \ + eval "$(rbenv init -)" && \ + rbenv install 2.3.3 && \ + rbenv global 2.3.3 && \ + echo 'Проверка установки Ruby' && ruby -v && \ + echo 'Проверка установки Gem' && gem -v + +# Устанавливаем путь к Ruby в переменной окружения PATH +ENV PATH /root/.rbenv/versions/2.3.3/bin:$PATH + +# Экспорт путей и инициализация rbenv +RUN /bin/bash -c 'export PATH="$HOME/.rbenv/bin:$HOME/.rbenv/plugins/ruby-build/bin:$PATH" && \ + eval "$(rbenv init -)"' + +# Установка Bundler и Bower +RUN /bin/bash -c 'echo "gem: --no-document" > ~/.gemrc && \ + $HOME/.rbenv/versions/2.3.3/bin/gem install bundler -v 1.17.3 && \ + npm install -g bower' + +# Клонирование репозитория проекта +RUN git clone https://git.softuniq.eu/UniqueSoft/gluster-web-interface.git /gluster-web + +# Установка Node.js и создание символической ссылки +RUN apt-get install -y nodejs npm && ln -s /usr/bin/nodejs /usr/bin/node + +# Установка необходимых зависимостей для ffi +RUN apt-get install -y libffi-dev + +# Явная установка ffi +RUN /bin/bash -c '$HOME/.rbenv/versions/2.3.3/bin/gem install ffi -v 1.9.18' + +# Установка зависимостей проекта WORKDIR /gluster-web +RUN echo "gem 'tzinfo-data'" >> /gluster-web/Gemfile +RUN /bin/bash -c "cd /gluster-web && echo \"gem 'tzinfo-data'\" >> Gemfile" +RUN /bin/bash -c "source ~/.bashrc && bower install --allow-root && \ + $HOME/.rbenv/versions/2.3.3/bin/bundle install" + +# Настройка базы данных +RUN /bin/bash -c "source ~/.bashrc && export PATH=\"$HOME/.rbenv/versions/2.3.3/bin:$PATH\" && bin/rake db:migrate" + +# Очистка и удаление ненужных пакетов +RUN apt-get clean && \ + rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && \ + apt-get purge -y --auto-remove + +# Копирование entrypoint скрипта COPY entrypoint / + +# Открытие порта и установка точки входа EXPOSE 3000 ENTRYPOINT ["/entrypoint"]