🔨 Integra scripts y código para docker
This commit is contained in:
parent
4cea38117d
commit
3d487e4279
7 changed files with 281 additions and 0 deletions
59
Dockerfile
Normal file
59
Dockerfile
Normal file
|
@ -0,0 +1,59 @@
|
|||
# Usar la imagen oficial de Redmine como base
|
||||
FROM redmine:4.1.7
|
||||
|
||||
RUN apt-get update && apt-get install -y \
|
||||
shared-mime-info \
|
||||
git \
|
||||
build-essential \
|
||||
mariadb-client \
|
||||
libxml2-dev \
|
||||
libxslt-dev \
|
||||
zlib1g-dev \
|
||||
libpq-dev \
|
||||
libmariadb-dev-compat \
|
||||
libmariadb-dev \
|
||||
libssl-dev \
|
||||
libreadline-dev \
|
||||
libffi-dev \
|
||||
imagemagick \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Definir el directorio de trabajo
|
||||
WORKDIR /usr/src/redmine
|
||||
|
||||
# Copiar archivos personalizados dentro del contenedor
|
||||
COPY app/controllers/wiki_controller.rb /usr/src/redmine/app/controllers/wiki_controller.rb
|
||||
COPY app/helpers/search_helper.rb /usr/src/redmine/app/helpers/search_helper.rb
|
||||
COPY app/views/account/login.html.erb /usr/src/redmine/app/views/account/login.html.erb
|
||||
COPY app/views/issues/tabs/_changesets.html.erb /usr/src/redmine/app/views/issues/tabs/_changesets.html.erb
|
||||
COPY app/views/layouts/base.html.erb /usr/src/redmine/app/views/layouts/base.html.erb
|
||||
COPY app/views/repositories/_changeset.html.erb /usr/src/redmine/app/views/repositories/_changeset.html.erb
|
||||
COPY app/views/wiki/show.html.erb /usr/src/redmine/app/views/wiki/show.html.erb
|
||||
|
||||
COPY config/database.yml /usr/src/redmine/config/database.yml
|
||||
COPY config/secrets.yml /usr/src/redmine/config/secrets.yml
|
||||
COPY config/locales/en.yml /usr/src/redmine/config/locales/en.yml
|
||||
COPY config/locales/es.yml /usr/src/redmine/config/locales/es.yml
|
||||
|
||||
COPY plugins /usr/src/redmine/plugins
|
||||
|
||||
COPY public/themes/circlepro /usr/src/redmine/public/themes/circlepro
|
||||
|
||||
# Clonar el plugin "rich"
|
||||
RUN git clone https://github.com/a-ono/rich.git /usr/src/redmine/vendor/rich
|
||||
|
||||
# Establecer permisos adecuados (opcional)
|
||||
RUN chown -R redmine:redmine /usr/src/redmine
|
||||
|
||||
# Instalar dependencias de Ruby
|
||||
RUN bundle install --without development test --path vendor/bundle
|
||||
|
||||
# Copiar el backup de la base de datos
|
||||
COPY suitepro-backup.sql /suitepro-backup.sql
|
||||
|
||||
# Copiar el script de inicialización
|
||||
COPY entrypoint.sh /entrypoint.sh
|
||||
RUN chmod +x /entrypoint.sh
|
||||
|
||||
# Configurar el punto de entrada
|
||||
ENTRYPOINT ["/entrypoint.sh"]
|
143
config/ckeditor.yml
Normal file
143
config/ckeditor.yml
Normal file
|
@ -0,0 +1,143 @@
|
|||
# CKEditor configuration:
|
||||
contentsCss: '/themes/circlepro/stylesheets/editor.css'
|
||||
allowedContent: true
|
||||
bodyClass: 'wiki'
|
||||
removePlugins: 'codemirror,div,flash,forms,iframe,copyformatting,elementspath'
|
||||
forcePasteAsPlainText: false
|
||||
entities: false
|
||||
|
||||
# CodeSnipet plugin configuration:
|
||||
codeSnippet_languages: {
|
||||
apache: 'Apache',
|
||||
awk: 'Awk',
|
||||
bash: 'Bash',
|
||||
bat: '.bat / DOS',
|
||||
cpp: 'C++',
|
||||
css: 'CSS',
|
||||
diff: 'Diff',
|
||||
dockerfile: 'Dockerfile',
|
||||
html: 'HTML',
|
||||
ini: '.ini / TOML',
|
||||
java: 'Java',
|
||||
javascript: 'JavaScript',
|
||||
json: 'JSON',
|
||||
makefile: 'Makefile',
|
||||
markdown: 'Markdown',
|
||||
nginx: 'Nginx',
|
||||
php: 'PHP',
|
||||
perl: 'Perl',
|
||||
ruby: 'Ruby',
|
||||
rust: 'Rust',
|
||||
sql: 'SQL',
|
||||
xhtml: 'XHTML',
|
||||
xml: 'XML',
|
||||
yaml: 'YAML'
|
||||
}
|
||||
|
||||
# Youtube plugin defaults:
|
||||
youtube_responsive: true
|
||||
|
||||
# HTML sanitizer configuration:
|
||||
allowedProtocols:
|
||||
- afs
|
||||
- aim
|
||||
- callto
|
||||
- ed2k
|
||||
- feed
|
||||
- ftp
|
||||
- gopher
|
||||
- http
|
||||
- https
|
||||
- irc
|
||||
- mailto
|
||||
- news
|
||||
- nntp
|
||||
- rsync
|
||||
- rtsp
|
||||
- sftp
|
||||
- ssh
|
||||
- tag
|
||||
- telnet
|
||||
- urn
|
||||
- webcal
|
||||
- xmpp
|
||||
|
||||
allowedTags:
|
||||
- a
|
||||
- abbr
|
||||
- acronym
|
||||
- address
|
||||
- b
|
||||
- big
|
||||
- blockquote
|
||||
- br
|
||||
- caption
|
||||
- cite
|
||||
- code
|
||||
- dd
|
||||
- del
|
||||
- dfn
|
||||
- div
|
||||
- dt
|
||||
- em
|
||||
- h1
|
||||
- h2
|
||||
- h3
|
||||
- h4
|
||||
- h5
|
||||
- h6
|
||||
- hr
|
||||
- i
|
||||
- iframe
|
||||
- img
|
||||
- ins
|
||||
- kbd
|
||||
- li
|
||||
- ol
|
||||
- p
|
||||
- pre
|
||||
- s
|
||||
- samp
|
||||
- small
|
||||
- span
|
||||
- strike
|
||||
- strong
|
||||
- sub
|
||||
- sup
|
||||
- table
|
||||
- tbody
|
||||
- td
|
||||
- tfoot
|
||||
- th
|
||||
- thead
|
||||
- tr
|
||||
- tt
|
||||
- u
|
||||
- ul
|
||||
- var
|
||||
|
||||
allowedAttributes:
|
||||
- abbr
|
||||
- align
|
||||
- alt
|
||||
- border
|
||||
- cellpadding
|
||||
- cellspacing
|
||||
- cite
|
||||
- class
|
||||
- colspan
|
||||
- datetime
|
||||
- dir
|
||||
- height
|
||||
- href
|
||||
- name
|
||||
- nowrap
|
||||
- reversed
|
||||
- rowspan
|
||||
- src
|
||||
- start
|
||||
- style
|
||||
- title
|
||||
- valign
|
||||
- width
|
||||
- xml:lang
|
7
config/database.yml.sample
Normal file
7
config/database.yml.sample
Normal file
|
@ -0,0 +1,7 @@
|
|||
production:
|
||||
adapter: mysql2
|
||||
database: suitepro
|
||||
host: db
|
||||
username: suitepro
|
||||
password: "<contraseña>"
|
||||
encoding: utf8mb4
|
2
config/secrets.yml.sample
Normal file
2
config/secrets.yml.sample
Normal file
|
@ -0,0 +1,2 @@
|
|||
production:
|
||||
secret_key_base: "<clave>"
|
34
docker-compose.yml.sample
Normal file
34
docker-compose.yml.sample
Normal file
|
@ -0,0 +1,34 @@
|
|||
version: '3'
|
||||
|
||||
services:
|
||||
suitepro:
|
||||
build: .
|
||||
container_name: suitepro
|
||||
ports:
|
||||
- "3080:3080"
|
||||
environment:
|
||||
REDMINE_DB_MYSQL: db
|
||||
REDMINE_DB_DATABASE: suitepro
|
||||
REDMINE_DB_USERNAME: suitepro
|
||||
REDMINE_DB_PASSWORD: <contraseña>
|
||||
volumes:
|
||||
- ./files:/usr/src/redmine/files
|
||||
- ./config/ckeditor.yml:/usr/src/redmine/config/ckeditor.yml
|
||||
depends_on:
|
||||
- db
|
||||
restart: always
|
||||
|
||||
db:
|
||||
image: mariadb:10.5.26
|
||||
container_name: suitepro_db
|
||||
environment:
|
||||
MARIADB_ROOT_PASSWORD: <contraseña>
|
||||
MARIADB_DATABASE: suitepro
|
||||
MARIADB_USER: suitepro
|
||||
MARIADB_PASSWORD: <contraseña>
|
||||
volumes:
|
||||
- db_data:/var/lib/mysql
|
||||
restart: always
|
||||
|
||||
volumes:
|
||||
db_data:
|
35
entrypoint.sh
Normal file
35
entrypoint.sh
Normal file
|
@ -0,0 +1,35 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
echo "📌 Esperando a que la base de datos esté lista..."
|
||||
until mysql -h db -u"$REDMINE_DB_USERNAME" -p"$REDMINE_DB_PASSWORD" -e "SELECT 1;" &> /dev/null; do
|
||||
sleep 5
|
||||
done
|
||||
|
||||
echo "📌 Verificando si la base de datos está preparada..."
|
||||
# Comprobar si la tabla 'projects' existe
|
||||
TABLE_EXISTS=$(mysql -h db -u"$REDMINE_DB_USERNAME" -p"$REDMINE_DB_PASSWORD" -D "$REDMINE_DB_DATABASE" \
|
||||
-se "SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = '$REDMINE_DB_DATABASE' AND table_name = 'projects';")
|
||||
|
||||
if [ "$TABLE_EXISTS" -eq 0 ]; then
|
||||
echo "🚀 Tabla 'projects' no existe. Importando backup..."
|
||||
mysql -h db -u"$REDMINE_DB_USERNAME" -p"$REDMINE_DB_PASSWORD" "$REDMINE_DB_DATABASE" < /suitepro-backup.sql
|
||||
echo "✅ Importación completada."
|
||||
else
|
||||
# Si la tabla existe, se comprueba si tiene registros
|
||||
RECORD_COUNT=$(mysql -h db -u"$REDMINE_DB_USERNAME" -p"$REDMINE_DB_PASSWORD" -D "$REDMINE_DB_DATABASE" \
|
||||
-se "SELECT COUNT(*) FROM projects;")
|
||||
if [ "$RECORD_COUNT" -eq 0 ]; then
|
||||
echo "🚀 Tabla 'projects' está vacía. Importando backup..."
|
||||
mysql -h db -u"$REDMINE_DB_USERNAME" -p"$REDMINE_DB_PASSWORD" "$REDMINE_DB_DATABASE" < /suitepro-backup.sql
|
||||
echo "✅ Importación completada."
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "🚀 Ejecutando migraciones de plugins..."
|
||||
bundle exec rake redmine:plugins:migrate RAILS_ENV=production
|
||||
|
||||
# Iniciar Redmine
|
||||
echo "🚀 Iniciando Redmine..."
|
||||
exec rails server -b 0.0.0.0
|
1
files/README
Normal file
1
files/README
Normal file
|
@ -0,0 +1 @@
|
|||
default directory for uploaded files
|
Loading…
Add table
Add a link
Reference in a new issue