Merge pull request #130 from ammmze/feature/uid-support
added support for uid/gid
This commit is contained in:
		
							
								
								
									
										10
									
								
								Dockerfile
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								Dockerfile
									
									
									
									
									
								
							| @@ -20,9 +20,11 @@ RUN apt-get update \ | ||||
|     && dpkg -i dumb-init_*.deb \ | ||||
|     && rm -rf dumb-init_*.deb \ | ||||
|     && apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \ | ||||
|     && curl -L https://github.com/jwilder/dockerize/releases/download/v0.0.2/dockerize-linux-amd64-v0.0.2.tar.gz | tar -C /usr/local/bin -xzv | ||||
|     && curl -L https://github.com/jwilder/dockerize/releases/download/v0.0.2/dockerize-linux-amd64-v0.0.2.tar.gz | tar -C /usr/local/bin -xzv \ | ||||
|     && groupmod -g 1000 users \ | ||||
|     && useradd -u 911 -U -d /config -s /bin/false abc \ | ||||
|     && usermod -G users abc | ||||
|  | ||||
| # Add configuration and scripts | ||||
| ADD openvpn/ /etc/openvpn/ | ||||
| ADD transmission/ /etc/transmission/ | ||||
|  | ||||
| @@ -100,7 +102,9 @@ ENV OPENVPN_USERNAME=**None** \ | ||||
|     "TRANSMISSION_UTP_ENABLED=true" \ | ||||
|     "TRANSMISSION_WATCH_DIR=/data/watch" \ | ||||
|     "TRANSMISSION_WATCH_DIR_ENABLED=true" \ | ||||
|     "TRANSMISSION_HOME=/data/transmission-home" | ||||
|     "TRANSMISSION_HOME=/data/transmission-home" \ | ||||
|     PUID=\ | ||||
|     PGID= | ||||
|  | ||||
| # Expose port and run | ||||
| EXPOSE 9091 | ||||
|   | ||||
| @@ -16,7 +16,10 @@ RUN apt-get update \ | ||||
|     && dpkg -i dumb-init_*.deb \ | ||||
|     && rm -rf dumb-init_*.deb \ | ||||
|     && apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \ | ||||
|     && curl -L https://github.com/jwilder/dockerize/releases/download/v0.2.0/dockerize-linux-armhf-v0.2.0.tar.gz | tar -C /usr/local/bin -xzv | ||||
|     && curl -L https://github.com/jwilder/dockerize/releases/download/v0.2.0/dockerize-linux-armhf-v0.2.0.tar.gz | tar -C /usr/local/bin -xzv \ | ||||
|     && groupmod -g 1000 users \ | ||||
|     && useradd -u 911 -U -d /config -s /bin/false abc \ | ||||
|     && usermod -G users abc | ||||
|  | ||||
| # Add configuration and scripts | ||||
| ADD openvpn/ /etc/openvpn/ | ||||
| @@ -96,7 +99,9 @@ ENV OPENVPN_USERNAME=**None** \ | ||||
|     "TRANSMISSION_UTP_ENABLED=true" \ | ||||
|     "TRANSMISSION_WATCH_DIR=/data/watch" \ | ||||
|     "TRANSMISSION_WATCH_DIR_ENABLED=true" \ | ||||
|     "TRANSMISSION_HOME=/data/transmission-home" | ||||
|     "TRANSMISSION_HOME=/data/transmission-home" \ | ||||
|     PUID=\ | ||||
|     PGID= | ||||
|  | ||||
| # Expose port and run | ||||
| EXPOSE 9091 | ||||
|   | ||||
							
								
								
									
										10
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								README.md
									
									
									
									
									
								
							| @@ -84,6 +84,16 @@ As you can see the variables are prefixed with `TRANSMISSION_`, the variable is | ||||
| PS: `TRANSMISSION_BIND_ADDRESS_IPV4` will be overridden to the IP assigned to your OpenVPN tunnel interface. | ||||
| This is to prevent leaking the host IP. | ||||
|  | ||||
| ### User configuration options | ||||
|  | ||||
| By default everything will run as the root user. However, it is possible to change who runs the transmission process.  | ||||
| You may set the following parameters to customize the user id that runs transmission. | ||||
|  | ||||
| | Variable | Function | Example | | ||||
| |----------|----------|-------| | ||||
| |`PUID` | Sets the user id who will run transmission | `PUID=1003`| | ||||
| |`PGID` | Sets the group id for the transmission user | `PGID=1003` | | ||||
|  | ||||
| ## Access the WebUI | ||||
| But what's going on? My http://my-host:9091 isn't responding? | ||||
| This is because the VPN is active, and since docker is running in a different ip range than your client the response | ||||
|   | ||||
| @@ -73,4 +73,7 @@ export TRANSMISSION_WATCH_DIR={{ .Env.TRANSMISSION_WATCH_DIR }} | ||||
| export TRANSMISSION_WATCH_DIR_ENABLED={{ .Env.TRANSMISSION_WATCH_DIR_ENABLED }} | ||||
|  | ||||
| # Transmission needs to know which VPN provider is used | ||||
| export OPENVPN_PROVIDER={{ .Env.OPENVPN_PROVIDER }} | ||||
| export OPENVPN_PROVIDER={{ .Env.OPENVPN_PROVIDER }} | ||||
|  | ||||
| export PUID={{ .Env.PUID }} | ||||
| export PGID={{ .Env.PGID }} | ||||
|   | ||||
| @@ -19,8 +19,10 @@ if [ ! -e "/dev/random" ]; then | ||||
|   ln -s /dev/urandom /dev/random | ||||
| fi | ||||
|  | ||||
| . /etc/transmission/userSetup.sh | ||||
|  | ||||
| echo "STARTING TRANSMISSION" | ||||
| exec /usr/bin/transmission-daemon -g ${TRANSMISSION_HOME} --logfile ${TRANSMISSION_HOME}/transmission.log & | ||||
| exec sudo -u ${RUN_AS} /usr/bin/transmission-daemon -g ${TRANSMISSION_HOME} --logfile ${TRANSMISSION_HOME}/transmission.log & | ||||
|  | ||||
| if [ "$OPENVPN_PROVIDER" = "PIA" ] | ||||
| then | ||||
|   | ||||
							
								
								
									
										33
									
								
								transmission/userSetup.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								transmission/userSetup.sh
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,33 @@ | ||||
| #!/bin/sh | ||||
|  | ||||
| # More/less taken from https://github.com/linuxserver/docker-baseimage-alpine/blob/3eb7146a55b7bff547905e0d3f71a26036448ae6/root/etc/cont-init.d/10-adduser | ||||
|  | ||||
| RUN_AS=root | ||||
|  | ||||
| if [ -n "$PUID" ] && [ ! "$(id -u root)" -eq "$PUID" ]; then | ||||
|     RUN_AS=abc | ||||
|     if [ ! "$(id -u ${RUN_AS})" -eq "$PUID" ]; then usermod -o -u "$PUID" ${RUN_AS} ; fi | ||||
|     if [ ! "$(id -g ${RUN_AS})" -eq "$PGID" ]; then groupmod -o -g "$PGID" ${RUN_AS} ; fi | ||||
|  | ||||
|     echo "Setting owner for transmission paths to ${PUID}:${PGID}" | ||||
|     chown -R ${RUN_AS}:${RUN_AS} ${TRANSMISSION_HOME} | ||||
|     chown ${RUN_AS}:${RUN_AS} \ | ||||
|         /config \ | ||||
|         ${TRANSMISSION_DOWNLOAD_DIR} \ | ||||
|         ${TRANSMISSION_INCOMPLETE_DIR} \ | ||||
|         ${TRANSMISSION_WATCH_DIR} | ||||
| fi | ||||
|  | ||||
| echo " | ||||
| ------------------------------------- | ||||
| Transmission will run as | ||||
| ------------------------------------- | ||||
| User name:   ${RUN_AS} | ||||
| User uid:    $(id -u ${RUN_AS}) | ||||
| User gid:    $(id -g ${RUN_AS}) | ||||
| ------------------------------------- | ||||
| " | ||||
|  | ||||
| export PUID | ||||
| export PGID | ||||
| export RUN_AS | ||||
		Reference in New Issue
	
	Block a user