mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 21:28:11 +09:00 
			
		
		
		
	Docker Container: Init 1 & Initialisation
- Now using a setup script before starting the app. The separation of the run script and the setup script will make service initialisation a little bit clearer - Now calling start.sh script as ENTRYPOINT and S6 as CMD. This way when running the container with just a shell script, the start.sh script will be launched before, making debugging easier - Added note about `.dockerignore` ignored during Docker Hub Automated Build
This commit is contained in:
		| @@ -1,7 +1,15 @@ | ||||
| .git | ||||
| .git/ | ||||
| .git/* | ||||
| conf | ||||
| conf/ | ||||
| conf/* | ||||
| packager | ||||
| packager/ | ||||
| packager/* | ||||
| scripts | ||||
| scripts/ | ||||
| scripts/* | ||||
| *.yml | ||||
| *.md | ||||
| .bra.toml | ||||
|   | ||||
| @@ -18,4 +18,5 @@ RUN ./docker/build.sh | ||||
| # Configure Docker Container | ||||
| VOLUME ["/data"] | ||||
| EXPOSE 22 3000 | ||||
| CMD ["docker/start.sh"] | ||||
| ENTRYPOINT ["docker/start.sh"] | ||||
| CMD ["/usr/bin/s6-svscan", "/app/gogs/docker/s6/"] | ||||
|   | ||||
| @@ -69,3 +69,8 @@ Steps to upgrade Gogs with Docker: | ||||
| - `docker stop gogs` | ||||
| - `docker rm gogs` | ||||
| - Finally, create container as the first time and don't forget to do same volume and port mapping. | ||||
|  | ||||
| ## Known Issues | ||||
|  | ||||
| - [Use ctrl+c when clone through SSH makes Docker exit unexpectedly](https://github.com/gogits/gogs/issues/1499) | ||||
| - `.dockerignore` seems to be ignored during Docker Hub Automated build | ||||
|   | ||||
| @@ -1,26 +1,8 @@ | ||||
| #!/bin/sh | ||||
| USER=git | ||||
|  | ||||
| if ! test -d /data/gogs; then | ||||
| 	mkdir -p /data/gogs/data /data/gogs/conf /data/gogs/log /data/git | ||||
| if test -f ./setup; then | ||||
|     source ./setup | ||||
| fi | ||||
|  | ||||
| if ! test -d ~git/.ssh; then | ||||
|     mkdir ~git/.ssh | ||||
|     chmod 700 ~git/.ssh | ||||
| fi | ||||
|  | ||||
| if ! test -f ~git/.ssh/environment; then | ||||
|     echo "GOGS_CUSTOM=${GOGS_CUSTOM}" > ~git/.ssh/environment | ||||
|     chmod 600 ~git/.ssh/environment | ||||
| fi | ||||
|  | ||||
| cd /app/gogs | ||||
|  | ||||
| ln -sf /data/gogs/log  ./log | ||||
| ln -sf /data/gogs/data ./data | ||||
|  | ||||
| chown -R git:git /data /app/gogs ~git/ | ||||
|  | ||||
| export USER | ||||
| export USER=git | ||||
| exec gosu $USER /app/gogs/gogs web | ||||
|   | ||||
							
								
								
									
										22
									
								
								docker/s6/gogs/setup
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										22
									
								
								docker/s6/gogs/setup
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,22 @@ | ||||
| #!/bin/sh | ||||
|  | ||||
| if ! test -d /data/gogs; then | ||||
|     mkdir -p /data/gogs/data /data/gogs/conf /data/gogs/log /data/git | ||||
| fi | ||||
|  | ||||
| if ! test -d ~git/.ssh; then | ||||
|     mkdir ~git/.ssh | ||||
|     chmod 700 ~git/.ssh | ||||
| fi | ||||
|  | ||||
| if ! test -f ~git/.ssh/environment; then | ||||
|     echo "GOGS_CUSTOM=${GOGS_CUSTOM}" > ~git/.ssh/environment | ||||
|     chmod 600 ~git/.ssh/environment | ||||
| fi | ||||
|  | ||||
| cd /app/gogs | ||||
|  | ||||
| ln -sf /data/gogs/log  ./log | ||||
| ln -sf /data/gogs/data ./data | ||||
|  | ||||
| chown -R git:git /data /app/gogs ~git/ | ||||
| @@ -1,15 +1,7 @@ | ||||
| #!/bin/sh | ||||
|  | ||||
| if ! test -d /data/ssh | ||||
| then | ||||
| 	mkdir -p /data/ssh | ||||
| 	ssh-keygen -q -f /data/ssh/ssh_host_key -N '' -t rsa1 | ||||
| 	ssh-keygen -q -f /data/ssh/ssh_host_rsa_key -N '' -t rsa | ||||
| 	ssh-keygen -q -f /data/ssh/ssh_host_dsa_key -N '' -t dsa | ||||
| 	ssh-keygen -q -f /data/ssh/ssh_host_ecdsa_key -N '' -t ecdsa | ||||
| 	ssh-keygen -q -f /data/ssh/ssh_host_ed25519_key -N '' -t ed25519 | ||||
| 	chown -R root:root /data/ssh/* | ||||
| 	chmod 600 /data/ssh/* | ||||
| if test -f ./setup; then | ||||
|     source ./setup | ||||
| fi | ||||
|  | ||||
| exec gosu root /usr/sbin/sshd -D -f /app/gogs/docker/sshd_config | ||||
|   | ||||
							
								
								
									
										12
									
								
								docker/s6/openssh/setup
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										12
									
								
								docker/s6/openssh/setup
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,12 @@ | ||||
| #!/bin/sh | ||||
|  | ||||
| if ! test -d /data/ssh; then | ||||
|     mkdir -p /data/ssh | ||||
|     ssh-keygen -q -f /data/ssh/ssh_host_key -N '' -t rsa1 | ||||
|     ssh-keygen -q -f /data/ssh/ssh_host_rsa_key -N '' -t rsa | ||||
|     ssh-keygen -q -f /data/ssh/ssh_host_dsa_key -N '' -t dsa | ||||
|     ssh-keygen -q -f /data/ssh/ssh_host_ecdsa_key -N '' -t ecdsa | ||||
|     ssh-keygen -q -f /data/ssh/ssh_host_ed25519_key -N '' -t ed25519 | ||||
|     chown -R root:root /data/ssh/* | ||||
|     chmod 600 /data/ssh/* | ||||
| fi | ||||
| @@ -8,5 +8,9 @@ while read NAME CMD; do | ||||
|     chmod +x /app/gogs/docker/s6/$NAME/run | ||||
| done | ||||
|  | ||||
| # Exec S6 as process manager for gogs and dropbear ssh | ||||
| # Exec CMD or S6 by default if nothing present | ||||
| if [ $# -gt 0 ];then | ||||
|     exec "$@" | ||||
| else | ||||
|     exec /usr/bin/s6-svscan /app/gogs/docker/s6/ | ||||
| fi | ||||
|   | ||||
		Reference in New Issue
	
	Block a user