Communities

Writing
Writing
Codidact Meta
Codidact Meta
The Great Outdoors
The Great Outdoors
Photography & Video
Photography & Video
Scientific Speculation
Scientific Speculation
Cooking
Cooking
Electrical Engineering
Electrical Engineering
Judaism
Judaism
Languages & Linguistics
Languages & Linguistics
Software Development
Software Development
Mathematics
Mathematics
Christianity
Christianity
Code Golf
Code Golf
Music
Music
Physics
Physics
Linux Systems
Linux Systems
Power Users
Power Users
Tabletop RPGs
Tabletop RPGs
Community Proposals
Community Proposals
tag:snake search within a tag
answers:0 unanswered questions
user:xxxx search by author id
score:0.5 posts with 0.5+ score
"snake oil" exact phrase
votes:4 posts with 4+ votes
created:<1w created < 1 week ago
post_type:xxxx type of post
Search help
Notifications
Mark all as read See all your notifications »
Q&A

Why shouldn't one run a production server in Docker? Question

+5
−0

QPixel's Docker documentation says that the Docker setup is intended for development environments, not production. The documentation calls out one specific issue: email doesn't work. Are there other reasons not to run a production system in Docker?

History
Why does this post require moderator attention?
You might want to add some details to your flag.
Why should this post be closed?

0 comment threads

1 answer

+4
−0

Assuming you set it to production mode in the documentation, I think it's mostly fine. As far as I know the following features don't work in the docker setup:

  • Redis data is not stored outside of docker, restarting loses all data in redis (caches, unread circles for categories, user settings, and more)
  • If AWS is not used, uploaded files are not stored outside of docker (restarting may lose any uploaded files)
  • Emails cannot be sent from within the docker container
  • Docker container does not automatically run with the latest security updates unless recreated (losing data from above)
  • The docker image is not as regularly updated, and is currently configured to use a version of ruby and nodejs which are both EOL.
  • The docker configuration does not do any kind of scaling, and is not tuned in any way for performance nor has any configuration options clearly specified for someone to do so. The amount of memory given to redis/rails/mysql is not configured. If you anyways intend your production instance to run default redis, mysql, nginx and rails settings (which are up to an extent designed to scale to what is needed) and you have sufficient server capacity, this need not be a dealbreaker.

Depending on who you ask, they will tell you that kubernetes/dockerized services are the only thing that is worthwhile and a must for large scale deployments, or they will tell you that its unnecessary overhead and that you should go with a self-installed setup. The truth is of course that both have their advantages, and you should choose what you think is best for your use case.

Unfortunately, it seems to be somewhat tricky to set QPixel up for people who are not familiar with development in some way (but who are familar with server deployment). It may be worthwhile to fix the issues with the docker image and specify the caveats with that type of installation, rather than say it is not intended for production.

History
Why does this post require moderator attention?
You might want to add some details to your flag.

1 comment thread

Maybe also fun to explore creating a debian package for qpixel, which just relies on the necessary de... (1 comment)

Sign up to answer this question »