-
Notifications
You must be signed in to change notification settings - Fork 36
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature request: Docker container #497
Comments
I believe we've tried to follow the instructions currently available but were unable to make it work! :( |
Send me an email please :-) |
Just started working on a Docker Composition for Formr for a researcher. There's definitely demand for a working Docker container. |
v10.0.5 working in a Docker Container without a DB, Cron, or OpenCPU (yet). I know for the Database I'll be using MySQL official image in a docker-compose.yml. Not sure what to do about the Cron or OpenCPU. There is an official OpenCPU Image on Docker Hub, but I'm not sure how to use it in a composition yet. And I don't know what it is or how to use the API anyways to test it. Heck, at this point I don't even know if I should be using the base image or the rstudio image. Putting the cron on the same machine as the PHP-Apache violates Docker's philosophy of separation (1 machine for 1 job). Hence not sure what to do... whether to install Supervisor (a hacky way of getting around the issue), or just spool up cron specific machine (probably the correct way to do it). # syntax=docker/dockerfile:1
FROM php:7.4.33-apache
# Install System & PHP Dependencies
RUN apt-get update
RUN apt-get upgrade -y
RUN apt-get install -y pandoc libzip-dev libxml2-dev libpng-dev libonig-dev libsodium-dev libcurl4-openssl-dev git
RUN docker-php-ext-install zip xml gd intl mbstring curl pdo pdo_mysql
# Install Composer from Official Composer Image
COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer
# Configure PHP
COPY formr/usr/local/etc/php/php.ini /usr/local/etc/php/php.ini
# Install & Configure FormR
WORKDIR /var/www
RUN rm -r html
RUN git clone https://github.com/rubenarslan/formr.org.git html
WORKDIR /var/www/html
RUN git checkout v10.0.5
RUN chown -R www-data:www-data /var/www/html
RUN composer install
COPY formr/var/www/html/config /var/www/html/config
# Configure Apache2
RUN a2enmod rewrite headers
COPY formr/etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/000-default.conf
RUN service apache2 restart |
Dear Jeffery
Thanks for trying out the Docker configuration. I think it would be
difficult to entirely separate the supervisor tasks since it is an integral
part of the formr application and generates files needed by the core
application. I think supervisor can be installed in same container and the
configuration should be mounted in a volume (similar to what should be done
with the formr config) So formr config, apache config and supervisor config
should be mounted via a volume. Formr has a "config" folder that should
make this easy (hopefully;))
If the host has enough resources and you are using docker compose, mysql
and opencpu could be added as other "services". Mysql already has an image
but no idea about opencpu. Opencpu could be based on an Ubuntu image.
The if you place all your services under the same network, the services
should communicate seamlessly via various configurations.
If I may ask, why did you try with an old version of formr?
Best
Cyril
…On Thu, Feb 9, 2023, 19:50 Jeffrey D. Van Alstine ***@***.***> wrote:
v10.0.5 working in a Docker Container without a DB, Cron, or OpenCPU
(yet). I know for the Database I'll be using MySQL official image in a
docker-compose.yml. Not sure what to do about the Cron or OpenCPU.
There is an official OpenCPU Image on Docker Hub, but I'm not sure how to
use it in a composition yet. And I don't know what it is or how to use the
API anyways to test it. Heck, at this point I don't even know if I should
be using the base image or the rstudio image.
Putting the cron on the same machine as the PHP-Apache violates Docker's
philosophy of separation (1 machine for 1 job). Hence not sure what to
do... whether to install Supervisor (a hacky way of getting around the
issue), or just spool up cron specific machine (probably the correct way to
do it).
# syntax=docker/dockerfile:1
FROM php:7.4.33-apache
# Install System & PHP DependenciesRUN apt-get update RUN apt-get upgrade -yRUN apt-get install -y pandoc libzip-dev libxml2-dev libpng-dev libonig-dev libsodium-dev libcurl4-openssl-dev gitRUN docker-php-ext-install zip xml gd intl mbstring curl pdo pdo_mysql
# Install Composer from Official Composer ImageCOPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer
# Configure PHPCOPY formr/usr/local/etc/php/php.ini /usr/local/etc/php/php.ini
# Install & Configure FormRWORKDIR /var/wwwRUN rm -r htmlRUN git clone https://github.com/rubenarslan/formr.org.git htmlWORKDIR /var/www/htmlRUN git checkout v10.0.5RUN chown -R www-data:www-data /var/www/htmlRUN composer installCOPY formr/var/www/html/config /var/www/html/config
# Configure Apache2RUN a2enmod rewrite headersCOPY formr/etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/000-default.confRUN service apache2 restart
—
Reply to this email directly, view it on GitHub
<#497 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AARL5Z4F3YZMLFC6ICL5JODWWU4AHANCNFSM6AAAAAASBCKRIA>
.
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***>
|
@cyriltata Oh interesting. I didn't notice it was an older version (2016). I just assumed since it was the highest version number it was the release. I'll switch to working v0.20.x. |
# syntax=docker/dockerfile:1
FROM php:8.2.2-apache
# Install System & PHP Dependencies
RUN apt-get update
RUN apt-get upgrade -y
RUN apt-get install -y pandoc libzip-dev libxml2-dev libpng-dev libonig-dev libsodium-dev libcurl4-openssl-dev git
RUN docker-php-ext-install zip xml gd intl mbstring curl pdo pdo_mysql
# Install Composer from Official Composer Image
COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer
# Configure PHP
COPY formr/usr/local/etc/php/php.ini /usr/local/etc/php/php.ini
# Install & Configure Formr
WORKDIR /var/www
RUN rm -r html
RUN git clone https://github.com/rubenarslan/formr.org.git
RUN ln -s /var/www/formr.org/webroot /var/www/html
WORKDIR /var/www/formr.org
RUN git checkout v0.20.5
RUN composer install
COPY formr/var/www/formr.org/config /var/www/formr.org/config
RUN chown -R www-data:www-data /var/www/formr.org
# Configure Apache2
RUN a2enmod rewrite headers
COPY formr/etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/000-default.conf
RUN service apache2 restart |
Does anyone have a YAML for a setup with Docker Compose, where the different components (like formR, database, OpenCPU) work together? Or does anyone have a Docker image that does not separate the components into different containers, but configures everything together in the same container? Does anyone have a repository where I can look at such a solution? |
@NS21fpsy you could try our experimental image https://hub.docker.com/r/formr/formr.org that could be deployed with this docker-compose https://github.com/cyriltata/formr.docker (read instructions). It sets up the formr software and mysql in two different containers. opencpu on the other one could be installed in another machine or they do also have an image https://hub.docker.com/r/opencpu/base, which you need to install your necessary R packages on, including the formr R package. Let us know if you succeed. |
We would love to host a formr instance by our research group but have a limited server environment. To set up an instance, it'd be great if there was a ready-to-use docker container to install formr with a few clicks. @ulyngs
The text was updated successfully, but these errors were encountered: