mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 00:54:43 +01:00 
			
		
		
		
	Merge pull request #1898 from 0rax/develop
Docker Improvmement and small fix
This commit is contained in:
		
						commit
						05b419b219
					
				| @ -20,3 +20,4 @@ ln -sf /data/gogs/data ./data | ||||
| ln -sf /data/git /home/git | ||||
| 
 | ||||
| chown -R git:git /data /app/gogs ~git/ | ||||
| chmod 0755 /data /data/gogs ~git/ | ||||
|  | ||||
| @ -23,4 +23,5 @@ fi | ||||
| 
 | ||||
| # Set correct right to ssh keys | ||||
| chown -R root:root /data/ssh/* | ||||
| chmod 600 /data/ssh/* | ||||
| chmod 0700 /data/ssh | ||||
| chmod 0600 /data/ssh/* | ||||
|  | ||||
							
								
								
									
										7
									
								
								docker/s6/syslogd/run
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										7
									
								
								docker/s6/syslogd/run
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,7 @@ | ||||
| #!/bin/sh | ||||
| 
 | ||||
| if test -f ./setup; then | ||||
|     source ./setup | ||||
| fi | ||||
| 
 | ||||
| exec gosu root /sbin/syslogd -nS -O- | ||||
| @ -1,36 +1,52 @@ | ||||
| #!/bin/sh | ||||
| 
 | ||||
| # Cleanup SOCAT services and s6 event folder | ||||
| # On start and on shutdown in case container has been killed | ||||
| rm -rf $(find /app/gogs/docker/s6/ -name 'event') | ||||
| rm -rf /app/gogs/docker/s6/SOCAT_* | ||||
| 
 | ||||
| # Create VOLUME subfolder | ||||
| for f in /data/gogs/data /data/gogs/conf /data/gogs/log /data/git /data/ssh; do | ||||
|     if ! test -d $f; then | ||||
|         mkdir -p $f | ||||
|     fi | ||||
| done | ||||
| 
 | ||||
| # Bind linked docker container to localhost socket using socat | ||||
| USED_PORT="3000:22" | ||||
| while read NAME ADDR PORT; do | ||||
|     if test -z "$NAME$ADDR$PORT"; then | ||||
|         continue | ||||
|     elif echo $USED_PORT | grep -E "(^|:)$PORT($|:)" > /dev/null; then | ||||
|         echo "init:socat | Can't bind linked container ${NAME} to localhost, port ${PORT} already in use" 1>&2 | ||||
|     else | ||||
|         SERV_FOLDER=/app/gogs/docker/s6/SOCAT_${NAME}_${PORT} | ||||
|         mkdir -p ${SERV_FOLDER} | ||||
|         CMD="socat -ls TCP4-LISTEN:${PORT},fork,reuseaddr TCP4:${ADDR}:${PORT}" | ||||
|         echo -e "#!/bin/sh\nexec $CMD" > ${SERV_FOLDER}/run | ||||
|         chmod +x ${SERV_FOLDER}/run | ||||
|         USED_PORT="${USED_PORT}:${PORT}" | ||||
|         echo "init:socat | Linked container ${NAME} will be binded to localhost on port ${PORT}" 1>&2 | ||||
|     fi | ||||
| done << EOT | ||||
| $(env | sed -En 's|(.*)_PORT_([0-9]+)_TCP=tcp://(.*):([0-9]+)|\1 \3 \4|p') | ||||
| create_socat_links() { | ||||
|     # Bind linked docker container to localhost socket using socat | ||||
|     USED_PORT="3000:22" | ||||
|     while read NAME ADDR PORT; do | ||||
|         if test -z "$NAME$ADDR$PORT"; then | ||||
|             continue | ||||
|         elif echo $USED_PORT | grep -E "(^|:)$PORT($|:)" > /dev/null; then | ||||
|             echo "init:socat  | Can't bind linked container ${NAME} to localhost, port ${PORT} already in use" 1>&2 | ||||
|         else | ||||
|             SERV_FOLDER=/app/gogs/docker/s6/SOCAT_${NAME}_${PORT} | ||||
|             mkdir -p ${SERV_FOLDER} | ||||
|             CMD="socat -ls TCP4-LISTEN:${PORT},fork,reuseaddr TCP4:${ADDR}:${PORT}" | ||||
|             echo -e "#!/bin/sh\nexec $CMD" > ${SERV_FOLDER}/run | ||||
|             chmod +x ${SERV_FOLDER}/run | ||||
|             USED_PORT="${USED_PORT}:${PORT}" | ||||
|             echo "init:socat  | Linked container ${NAME} will be binded to localhost on port ${PORT}" 1>&2 | ||||
|         fi | ||||
|     done << EOT | ||||
|     $(env | sed -En 's|(.*)_PORT_([0-9]+)_TCP=tcp://(.*):([0-9]+)|\1 \3 \4|p') | ||||
| EOT | ||||
| } | ||||
| 
 | ||||
| cleanup() { | ||||
|     # Cleanup SOCAT services and s6 event folder | ||||
|     # On start and on shutdown in case container has been killed | ||||
|     rm -rf $(find /app/gogs/docker/s6/ -name 'event') | ||||
|     rm -rf /app/gogs/docker/s6/SOCAT_* | ||||
| } | ||||
| 
 | ||||
| create_volume_subfolder() { | ||||
|     # Create VOLUME subfolder | ||||
|     for f in /data/gogs/data /data/gogs/conf /data/gogs/log /data/git /data/ssh; do | ||||
|         if ! test -d $f; then | ||||
|             mkdir -p $f | ||||
|         fi | ||||
|     done | ||||
| } | ||||
| 
 | ||||
| cleanup | ||||
| create_volume_subfolder | ||||
| 
 | ||||
| LINK=$(echo "$SOCAT_LINK" | tr '[:upper:]' '[:lower:]') | ||||
| if [ "$LINK" = "false" -o "$LINK" = "0" ]; then | ||||
|     echo "init:socat  | Will not try to create socat links as requested" 1>&2 | ||||
| else | ||||
|     create_socat_links | ||||
| fi | ||||
| 
 | ||||
| # Exec CMD or S6 by default if nothing present | ||||
| if [ $# -gt 0 ];then | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user