Replies: 1 comment 2 replies
-
Migration in the sense of the same system? Otherwise I'm not sure what your earlier steps are with "RESET". Is this like for migrating an image upgrade when we publish a new release, or getting a clean slate on the same system? An OCI/Docker image runs a container like DMS which you can use volumes to persist your data changes outside of the container. Meanwhile a container has it's own internal state persisted until it's destroyed. So restarting your system or some crash that triggers Our startup scripts can be a bit naive and assume they have the original file state for config files in our image. Some are not as robust, so a container restart would in the past be more problematic because it tries to make a change (modify, add, delete) to some config file but instead of A => B, it's like B => C where C is broken/unexpected, thus weird bugs can occur. With v14 we tried to resolve that by only running the bulk of these scripts on a fresh container instance (we add a file to that internal container state and check if it's already there to know if this is not a fresh container but a restarted one), but as you link there was a mistake there which will be fixed for v15 (should be released before the end of this month AFAIK). When your image tag (or the digest it points to) changes because you're updating to a new release, or you change some settings like the environment variables for the service container, it should result in creating a new image for you. You can't really run an old container that's associated to an older image of DMS with the newer image for example, so it must start with a fresh container. Basically you can use As for your own data persistence via volumes. If they're bind mount to host directory it's quite easy to observe the content and delete their content if you need to. Data volumes however aren't tied to a container, those have nothing to do with what I described earlier, clearing them is manual with For upgrading to a new release it's important to pay attention to our changelog, especially major versions which mention any breaking changes introduced (which if they affect you can require manual intervention).
We have a docs page on this for WatchTower advice: https://docker-mailserver.github.io/docker-mailserver/latest/config/advanced/maintenance/update-and-cleanup/ Note that watchtower hasn't been maintained for like a year (last commit Jan 2024). There are some alternatives, but if you're going to upgrade infrequently it makes more sense to just bump the version tag manually, you'll likely need to review our changelog anyway.
I gave an example of how it can be configured here: #4022 (comment)
Not my area of expertise, I can't assist there. I believe our docs touch on some log monitoring config/tools, but if you need something more than that you'd probably have to set that up yourself.
Likewise, that'll be something you'd need to investigate. We lack the time and resources as volunteers to cover everyones needs, but do appreciate contributions from users to share their knowledge in our docs to help others that come after them wanting the same thing. For the most part DMS is glue and we try to make it easy to configure the services while still providing you control to manage config yourself (usually via our overrides and If you just need to monitor logs, you have the log volume and dockers own logging driver which you could probably leverage. I realize this doesn't answer all your questions, but I hope it helps. I've not deployed DMS myself, I just help maintain and contribute. |
Beta Was this translation helpful? Give feedback.
-
Hello everyone,
I have tested DMS during several weeks now, and all seems to work like I want. I have tuned the setup, prepared the migration procedure and tested most of it.
But before effective migration (for personal use) I would like to know if I missing anything important on this procedure, and have some unanswered questions. I would appreciate any comment from experienced users or devs.
My setup is the following:
My migration procedure is:
docker compose down
docker system prune
docker exec -ti mailserver setup email add [email protected]
docker exec -ti mailserver setup alias add [email protected] [email protected]
docker exec -it mailserver setup config dkim domain example.com
config/rspamd/override.d/dkim_signing.conf
and add them to DNSThe questions I have are:
restart: always
, the container will be started automatically when server reboot. Is it safe? I saw https://github.com/orgs/docker-mailserver/discussions/4032 and bug: DMS v14 regression - Container restart support may fail due to unclean exit #4150 and I'm not sure how to understand themwatchcontainer
for automatic updates? Or should I, from time to time, verify github changelog and upgrade manually? In my case it could mean several months or years between updatesI hope I didn't forget something important. Please comment if you think about anything.
Beta Was this translation helpful? Give feedback.
All reactions