Claude super rough first cut of a few packages. Almost certainly entirely unusable...
This commit is contained in:
93
CloudronPackages/ConsulDemocracy/Dockerfile
Normal file
93
CloudronPackages/ConsulDemocracy/Dockerfile
Normal file
@@ -0,0 +1,93 @@
|
||||
FROM cloudron/base:4.2.0
|
||||
|
||||
# Install dependencies
|
||||
RUN apt-get update && apt-get install -y \
|
||||
build-essential \
|
||||
cmake \
|
||||
pkg-config \
|
||||
git \
|
||||
curl \
|
||||
ruby-full \
|
||||
nodejs \
|
||||
npm \
|
||||
imagemagick \
|
||||
libpq-dev \
|
||||
libxml2-dev \
|
||||
libxslt1-dev \
|
||||
zlib1g-dev \
|
||||
libyaml-dev \
|
||||
libssl-dev \
|
||||
libreadline-dev \
|
||||
supervisor \
|
||||
nginx \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Update npm and install yarn
|
||||
RUN npm install -g yarn
|
||||
|
||||
# Set Ruby and NodeJS versions
|
||||
ENV RUBY_VERSION=3.2.8
|
||||
ENV NODE_VERSION=18.20.3
|
||||
|
||||
# Ensure correct nodejs version (Node.js is already installed in base image)
|
||||
RUN n ${NODE_VERSION}
|
||||
|
||||
# Create app directory structure
|
||||
RUN mkdir -p /app/code /app/data /tmp/data
|
||||
|
||||
# Clone the app
|
||||
RUN git clone https://github.com/consuldemocracy/consuldemocracy.git /app/code
|
||||
WORKDIR /app/code
|
||||
|
||||
# Install bundler
|
||||
RUN gem install bundler
|
||||
|
||||
# Install gems
|
||||
RUN bundle install --deployment --without development test
|
||||
|
||||
# Install JavaScript dependencies
|
||||
RUN yarn install
|
||||
|
||||
# Precompile assets
|
||||
RUN SECRET_KEY_BASE=precompilation_key RAILS_ENV=production bundle exec rake assets:precompile
|
||||
|
||||
# Configure Nginx
|
||||
RUN rm -f /etc/nginx/sites-enabled/default
|
||||
COPY nginx.conf /etc/nginx/sites-enabled/consuldemocracy.conf
|
||||
|
||||
# Configure Supervisor
|
||||
COPY supervisord.conf /etc/supervisor/conf.d/consuldemocracy.conf
|
||||
|
||||
# Add initialization script for /app/data
|
||||
COPY init-data.sh /app/code/
|
||||
RUN chmod +x /app/code/init-data.sh
|
||||
|
||||
# Copy backup script
|
||||
COPY backup.sh /app/code/
|
||||
RUN chmod +x /app/code/backup.sh
|
||||
|
||||
# Copy database configuration
|
||||
COPY database.yml /app/code/config/database.yml
|
||||
|
||||
# Copy secrets configuration template
|
||||
COPY secrets.yml /app/code/config/secrets.yml
|
||||
|
||||
# Add LDAP configuration
|
||||
COPY ldap.yml /app/code/config/ldap.yml
|
||||
|
||||
# Copy oauth integration config
|
||||
COPY oauth.rb /app/code/config/initializers/oauth.rb
|
||||
|
||||
# Copy the startup script
|
||||
COPY start.sh /app/code/
|
||||
RUN chmod +x /app/code/start.sh
|
||||
|
||||
# Set appropriate permissions
|
||||
RUN chown -R cloudron:cloudron /app/code
|
||||
|
||||
# Configure app for production
|
||||
ENV RAILS_ENV=production
|
||||
ENV RAILS_SERVE_STATIC_FILES=true
|
||||
|
||||
# Entrypoint
|
||||
CMD ["/app/code/start.sh"]
|
Reference in New Issue
Block a user