#!/bin/cat # $Id: FAQ.Docker.txt,v 1.13 2023/12/02 10:43:59 gilles Exp gilles $ This document is also available online at https://imapsync.lamiral.info/FAQ.d/ https://imapsync.lamiral.info/FAQ.d/FAQ.Docker.txt ====================================================================== Installing and using imapsync docker image ====================================================================== Questions answered in this FAQ are: Q. How can I install and use the imapsync Docker image on my amd64 system? Q. How can I install and use the imapsync Docker image on my i386 system? Q. How can I install or update only the imapsync Docker image on my system? Q. How can I launch the online imapsync service included in the imapsync docker image? Q. Where is the imapsync Docker hub location? Q. How can I mask the passwords on the command line without mounting inside the container? Q. Why imapsync isn't logging to a file in Docker context. How can I allow it? Q. Any tips for the Docker Mailcow distribution? Q. How can I build my own image? Q. What do you do to update the docker hub image? Now the questions again with their answers. ====================================================================== Q. How can I install and use the imapsync Docker image on my amd64 system? A. Install Docker on your system. Once Docker is installed on your system, all you have to do in order install and run imapsync is the command line: docker run --rm gilleslamiral/imapsync imapsync ====================================================================== Q. How can I install and use the imapsync Docker image on my i386 system? A1. You can't do it directly for now. It will throw this error when running it: docker run --rm gilleslamiral/imapsync imapsync standard_init_linux.go:211: exec user process caused "exec format error" I plan to make the image multi-plateform. Drop me a note if you are eager to have it. A2. Build the image on a i386 system with the exact same Dockerfile provided and run it on your i386 system. ====================================================================== Q. How can I install or update only the imapsync Docker image on my system? A. To install or update the imapsync image, run: docker pull gilleslamiral/imapsync ====================================================================== Q. How can I launch the online imapsync service included in the imapsync docker image? A1. To install and run the online imapsync service on the classical http port 80 only: docker run --publish 80:8080 gilleslamiral/imapsync /servimapsync A2. To install and run the online imapsync service on the classical https port 443 only: docker run --publish 443:8443 gilleslamiral/imapsync /servimapsync An issue with the previous command is that the certificate inside the image corresponds to the hostname https://docker.imapsync.tk/ which is not yours so your browser will complain about an unsafe ssl certificate when using your own online service https://example.com/ See below for a solution. A3. To install and run the online imapsync service on both classical http and https ports: docker run --publish 80:8080 --publish 443:8443 gilleslamiral/imapsync /servimapsync A4. To use your own ssl certificate with the online imapsync service: chmod +r /etc/letsencrypt/live/docker.imapsync.tk/privkey.pem docker run --publish 443:8443 \ --volume /etc/letsencrypt/live/docker.imapsync.tk/privkey.pem:/var/tmp/privkey.pem \ --volume /etc/letsencrypt/live/docker.imapsync.tk/fullchain.pem:/var/tmp/fullchain.pem \ gilleslamiral/imapsync /servimapsync Replace the path part "/docker.imapsync.tk/" by your hostname in the previous commands. The "chmod +r" command on the secret key is not a good practice but it is practical in this Docker context. I leave you a better safe solution as an exercise. ====================================================================== Q. Where is the imapsync Docker hub location? A. Here: https://hub.docker.com/r/gilleslamiral/imapsync/ ====================================================================== Q. How can I mask the passwords on the command line without mounting anything inside the container? A. Use a file defining the environment variables IMAPSYNC_PASSWORD1 and IMAPSYNC_PASSWORD2 cat ./secret.txt IMAPSYNC_PASSWORD1=secret1 IMAPSYNC_PASSWORD2=secret2 Use that file like this for a run: docker run --rm --env-file ./secret.txt gilleslamiral/imapsync imapsync ... See: https://docs.docker.com/engine/reference/commandline/run/#set-environment-variables--e---env---env-file https://stackoverflow.com/a/30494145/491175 ====================================================================== Q. Why imapsync isn't logging to a file in Docker context. How can I allow it? A. In Docker context, writing the log is disabled by default because you don't have an easy access to the logfile after the sync. The logfile is inside the docker and no longer available after the sync, unless a special mount is done before. Starting with imapsync release 2.113 the logging can be turned on by using the option --log. You can add access to the logfile with a mount or similar. See https://docs.docker.com/storage/volumes/" See also https://github.com/imapsync/imapsync/issues/283 ====================================================================== Q. Any tips for the Docker Mailcow distribution? A. With the Mailcow distribution, imapsync is running inside a Docker container. Quoting Mathilde: To make it work with Mailcow, options should be added like this: --regexflag=s/\\Indexed//gi Without spaces, without quotes. See the original Mathilde's comment: https://github.com/imapsync/imapsync/issues/201#issuecomment-559500077 ====================================================================== Q. How can I build my own image? A. Use the following command to build the image: docker build -t gilleslamiral/imapsync . with the Dockerfile in the current directory. The latest Dockerfile can be found at https://imapsync.lamiral.info/INSTALL.d/Dockerfile or at https://hub.docker.com/r/gilleslamiral/imapsync or at https://imapsync.lamiral.info/INSTALL.d/INSTALL.Docker_build.txt ====================================================================== Q. What do you do to update the docker hub image? A. In my imapsync directory, I do the following make docker_build make docker_upload_docker_hub Then I go to https://hub.docker.com/r/gilleslamiral/imapsync I edit and update the docker "Readme" with the last Dockerfile I used. I also update INSTALL.Docker_build.txt with the last Dockerfile I also update the last Dockerfile on the imapsync site with: make upload_index ====================================================================== ======================================================================