mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 07:21:36 +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 | ln -sf /data/git /home/git | ||||||
| 
 | 
 | ||||||
| chown -R git:git /data /app/gogs ~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 | # Set correct right to ssh keys | ||||||
| chown -R root:root /data/ssh/* | 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 | #!/bin/sh | ||||||
| 
 | 
 | ||||||
| # Cleanup SOCAT services and s6 event folder | create_socat_links() { | ||||||
| # On start and on shutdown in case container has been killed |     # Bind linked docker container to localhost socket using socat | ||||||
| rm -rf $(find /app/gogs/docker/s6/ -name 'event') |     USED_PORT="3000:22" | ||||||
| rm -rf /app/gogs/docker/s6/SOCAT_* |     while read NAME ADDR PORT; do | ||||||
| 
 |         if test -z "$NAME$ADDR$PORT"; then | ||||||
| # Create VOLUME subfolder |             continue | ||||||
| for f in /data/gogs/data /data/gogs/conf /data/gogs/log /data/git /data/ssh; do |         elif echo $USED_PORT | grep -E "(^|:)$PORT($|:)" > /dev/null; then | ||||||
|     if ! test -d $f; then |             echo "init:socat  | Can't bind linked container ${NAME} to localhost, port ${PORT} already in use" 1>&2 | ||||||
|         mkdir -p $f |         else | ||||||
|     fi |             SERV_FOLDER=/app/gogs/docker/s6/SOCAT_${NAME}_${PORT} | ||||||
| done |             mkdir -p ${SERV_FOLDER} | ||||||
| 
 |             CMD="socat -ls TCP4-LISTEN:${PORT},fork,reuseaddr TCP4:${ADDR}:${PORT}" | ||||||
| # Bind linked docker container to localhost socket using socat |             echo -e "#!/bin/sh\nexec $CMD" > ${SERV_FOLDER}/run | ||||||
| USED_PORT="3000:22" |             chmod +x ${SERV_FOLDER}/run | ||||||
| while read NAME ADDR PORT; do |             USED_PORT="${USED_PORT}:${PORT}" | ||||||
|     if test -z "$NAME$ADDR$PORT"; then |             echo "init:socat  | Linked container ${NAME} will be binded to localhost on port ${PORT}" 1>&2 | ||||||
|         continue |         fi | ||||||
|     elif echo $USED_PORT | grep -E "(^|:)$PORT($|:)" > /dev/null; then |     done << EOT | ||||||
|         echo "init:socat | Can't bind linked container ${NAME} to localhost, port ${PORT} already in use" 1>&2 |     $(env | sed -En 's|(.*)_PORT_([0-9]+)_TCP=tcp://(.*):([0-9]+)|\1 \3 \4|p') | ||||||
|     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 | 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 | # Exec CMD or S6 by default if nothing present | ||||||
| if [ $# -gt 0 ];then | if [ $# -gt 0 ];then | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user