From 7de7f00f88fbf4bf69e1c430a1bd112caa95ad75 Mon Sep 17 00:00:00 2001 From: rnsrk Date: Wed, 16 Apr 2025 14:45:28 +0200 Subject: [PATCH] first commit --- build/Dockerfile | 54 ++++++++++++++++++++++++++++++++++++++++++++++ docker-compose.yml | 29 +++++++++++++++++++++++++ 2 files changed, 83 insertions(+) create mode 100644 build/Dockerfile create mode 100644 docker-compose.yml diff --git a/build/Dockerfile b/build/Dockerfile new file mode 100644 index 0000000..36bce1d --- /dev/null +++ b/build/Dockerfile @@ -0,0 +1,54 @@ +FROM php:8.1-apache + +ARG OMEKA_DB_NAME +ARG OMEKA_DB_USER +ARG OMEKA_DB_PASSWORD +ARG OMEKA_DB_HOST + +# Install dependencies +RUN apt-get update && apt-get install -y \ + git \ + unzip \ + libxml2-dev \ + libpng-dev \ + libjpeg-dev \ + libfreetype6-dev \ + libmagickwand-dev \ + imagemagick \ + nodejs \ + npm \ + libicu-dev \ + && rm -rf /var/lib/apt/lists/* + +# Install PHP extensions +RUN docker-php-ext-configure gd --with-freetype --with-jpeg \ + && docker-php-ext-install -j$(nproc) pdo pdo_mysql xml gd intl \ + && pecl install imagick \ + && docker-php-ext-enable imagick + +# Enable Apache modules +RUN a2enmod rewrite + +# Set the working directory +WORKDIR /var/www/html + +# Clone Omeka S repository +RUN git clone https://github.com/omeka/omeka-s.git . \ + && git config --global --add safe.directory /var/www/html \ + && npm install \ + && npx gulp init + +# Set directory permissions +RUN mkdir -p files && chown -R www-data:www-data files + +RUN { \ + echo "user = ${OMEKA_DB_USER}"; \ + echo "password = ${OMEKA_DB_PASSWORD}"; \ + echo "dbname = ${OMEKA_DB_NAME}"; \ + echo "host = ${OMEKA_DB_HOST}"; \ + echo "port = ''"; \ + echo "unix_socket = ''"; \ + echo "charset = ''"; \ + } > /var/www/html/config/database.ini; + +CMD ["apache2-foreground"] diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..24f5a10 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,29 @@ +services: + omeka: + build: + context: ./build/ + args: + - OMEKA_DB_HOST=db + - OMEKA_DB_USER=omeka + - OMEKA_DB_PASSWORD=omeka + - OMEKA_DB_NAME=omeka + ports: + - 3020:80 + volumes: + - omeka_data:/var/www/html/files + depends_on: + - db + + db: + image: mariadb:11 + environment: + - MYSQL_ROOT_PASSWORD=root + - MYSQL_DATABASE=omeka + - MYSQL_USER=omeka + - MYSQL_PASSWORD=omeka + volumes: + - db_data:/var/lib/mysql + +volumes: + omeka_data: + db_data: