leepeuker / movary

Self hosted web app to track and rate your watched movies
MIT License
409 stars 14 forks source link

Improve docker setup #206

Open leepeuker opened 1 year ago

leepeuker commented 1 year ago

Currently webdevops/php-nginx is used as the base app image. This contains a lot of things we do not need which increases the image size and complexity needlessly.

The idea is to create an alpine php-fpm only app image (using e.g. this as base image) and extend it to create a second "all in one" image containing nginx and supervisor additionally. This way there is a solution for a one container quick setup and a php only image for people who want more granular control.

Additional requirements:

EDIT: I will improve the description of the requirements soon.

JVT038 commented 1 year ago

What do you think about trafex/php-nginx?

It's based on alpine, only 40MB, contains NGINX and PHP8.2 (so we won't have to manage that ourselves, because it's been done for us) and it can easily be extended.

leepeuker commented 1 year ago

Thanks for the suggestion. We cannot use the image directly because it is missing dependencies we need, so created a branch where I used trafex/php-nginx only as a template for a new docker setup: https://github.com/leepeuker/movary/pull/542/files

I think the basic setup of php/nginx/supervisor works fine, but there are still permissions issues with the docker user I do not know how to resolve yet. Assigning a custom UID in the compose file like user: "${USER_ID}:${USER_ID}" breaks the container because for example supervisor cannot be started.