ソースを参照

use git instead of cloudron as user

girish@cloudron.io 9 年 前
コミット
8c5e97b351
5 ファイル変更28 行追加23 行削除
  1. 14 9
      Dockerfile
  2. 1 1
      app.ini.template
  3. 2 2
      start.sh
  4. 4 4
      supervisor/gogs.conf
  5. 7 7
      test/test.js

+ 14 - 9
Dockerfile

@@ -6,27 +6,32 @@ RUN apt-get update && \
 
 ADD supervisor/ /etc/supervisor/conf.d/
 
-RUN mkdir -p /home/cloudron/gogs
+RUN adduser --disabled-login --gecos 'Gogs' git
+# by default, git account is created as inactive which prevents login via openssh
+# https://github.com/gitlabhq/gitlabhq/issues/5304
+RUN passwd -d git
+
+RUN mkdir -p /home/git/gogs
 ## TODO: use redis as well
-RUN cd /home/cloudron/gogs && \
+RUN cd /home/git/gogs && \
     curl -L https://github.com/gogits/gogs/releases/download/v0.8.25/linux_amd64.tar.gz | tar zxvf - --strip-components 1
 
 # setup config paths
-ADD app.ini.template /home/cloudron/app.ini.template
-RUN mkdir -p /run/gogs && chown -R cloudron:cloudron /run/gogs
+ADD app.ini.template /home/git/app.ini.template
+RUN mkdir -p /run/gogs && chown -R git:git /run/gogs
 
 # setup log paths
-RUN mkdir -p /run/gogs && chown -R cloudron:cloudron /run/gogs
+RUN mkdir -p /run/gogs && chown -R git:git /run/gogs
 RUN sed -e 's,^logfile=.*$,logfile=/run/gogs/supervisord.log,' -i /etc/supervisor/supervisord.conf
 
-RUN ln -s /app/data/ssh /home/cloudron/.ssh
-RUN ln -s /app/data/gitconfig /home/cloudron/.gitconfig
+RUN ln -s /app/data/ssh /home/git/.ssh
+RUN ln -s /app/data/gitconfig /home/git/.gitconfig
 
-ADD start.sh /home/cloudron/start.sh
+ADD start.sh /home/git/start.sh
 
 # disable pam authentication for sshd
 RUN sed -e 's/UsePAM yes/UsePAM no/' -e 's/UsePrivilegeSeparation yes/UsePrivilegeSeparation no/' -i /etc/ssh/sshd_config
 RUN echo "UseDNS no" >> /etc/ssh/sshd_config
 
-CMD [ "/home/cloudron/start.sh" ]
+CMD [ "/home/git/start.sh" ]
 

+ 1 - 1
app.ini.template

@@ -1,5 +1,5 @@
 APP_NAME = Gogs: Go Git Service
-RUN_USER = cloudron
+RUN_USER = git
 RUN_MODE = prod
 
 [database]

+ 2 - 2
start.sh

@@ -36,11 +36,11 @@ sed -e "s/##DOMAIN/${APP_DOMAIN}/g" \
     -e "s/##MAIL_PORT/${MAIL_SMTP_PORT}/g" \
     -e "s/##MAIL_FROM/${MAIL_SMTP_USERNAME}@${MAIL_DOMAIN}/g" \
     -e "s/##SECRET_KEY/$(pwgen -1 -s)/g" \
-    /home/cloudron/app.ini.template > "/run/gogs/app.ini"
+    /home/git/app.ini.template > "/run/gogs/app.ini"
 
 mkdir -p /app/data/repository /app/data/ssh
 
-chown -R cloudron.cloudron /app/data /run/gogs
+chown -R git:git /app/data /run/gogs
 
 ( setup_ldap_source ) &
 

+ 4 - 4
supervisor/gogs.conf

@@ -1,7 +1,7 @@
 [program:gogs]
-directory=/home/cloudron/gogs
-command=/home/cloudron/gogs/gogs web -c /run/gogs/app.ini -p 3000
-user=cloudron
+directory=/home/git/gogs
+command=/home/git/gogs/gogs web -c /run/gogs/app.ini -p 3000
+user=git
 autostart=true
 autorestart=true
 ; https://veithen.github.io/2015/01/08/supervisord-redirecting-stdout.html
@@ -9,4 +9,4 @@ stdout_logfile=/dev/stdout
 stdout_logfile_maxbytes=0
 stderr_logfile=/dev/stderr
 stderr_logfile_maxbytes=0
-environment=HOME="/home/cloudron",USER="cloudron"
+environment=HOME="/home/git",USER="git"

+ 7 - 7
test/test.js

@@ -115,7 +115,7 @@ describe('Application life cycle test', function () {
         browser.get('https://' + app.fqdn + '/' + username + '/' + reponame);
         browser.findElement(by.id('repo-clone-ssh')).click();
         browser.findElement(by.id('repo-clone-url')).getAttribute('value').then(function (cloneUrl) {
-            expect(cloneUrl).to.be('ssh://cloudron@' + app.fqdn + ':29418/' + username + '/' + reponame + '.git');
+            expect(cloneUrl).to.be('ssh://git@' + app.fqdn + ':29418/' + username + '/' + reponame + '.git');
             done();
         });
     });
@@ -123,14 +123,14 @@ describe('Application life cycle test', function () {
     it('can clone the url', function (done) {
         var env = Object.create(process.env);
         env.GIT_SSH = __dirname + '/git_ssh_wrapper.sh';
-        execSync('git clone ssh://cloudron@' + app.fqdn + ':29418/' + username + '/' + reponame + '.git ' + repodir, { env: env });
+        execSync('git clone ssh://git@' + app.fqdn + ':29418/' + username + '/' + reponame + '.git ' + repodir, { env: env });
         done();
     });
 
     it('can add and push a file', function (done) {
         var env = Object.create(process.env);
         env.GIT_SSH = __dirname + '/git_ssh_wrapper.sh';
-        execSync('touch newfile && git add newfile && git commit -a -mx && git push ssh://cloudron@' + app.fqdn + ':29418/' + username + '/' + reponame + ' master',
+        execSync('touch newfile && git add newfile && git commit -a -mx && git push ssh://git@' + app.fqdn + ':29418/' + username + '/' + reponame + ' master',
                  { env: env, cwd: repodir });
         rimraf.sync('/tmp/testrepo');
         done();
@@ -144,7 +144,7 @@ describe('Application life cycle test', function () {
     it('can clone the url', function (done) {
         var env = Object.create(process.env);
         env.GIT_SSH = __dirname + '/git_ssh_wrapper.sh';
-        execSync('git clone ssh://cloudron@' + app.fqdn + ':29418/' + username + '/' + reponame + '.git ' + repodir, { env: env });
+        execSync('git clone ssh://git@' + app.fqdn + ':29418/' + username + '/' + reponame + '.git ' + repodir, { env: env });
         expect(fs.existsSync(repodir + '/newfile')).to.be(true);
         rimraf.sync(repodir);
         done();
@@ -161,7 +161,7 @@ describe('Application life cycle test', function () {
     it('can clone the url', function (done) {
         var env = Object.create(process.env);
         env.GIT_SSH = __dirname + '/git_ssh_wrapper.sh';
-        execSync('git clone ssh://cloudron@' + app.fqdn + ':29418/' + username + '/' + reponame + '.git ' + repodir, { env: env });
+        execSync('git clone ssh://git@' + app.fqdn + ':29418/' + username + '/' + reponame + '.git ' + repodir, { env: env });
         expect(fs.existsSync(repodir + '/newfile')).to.be(true);
         rimraf.sync(repodir);
         done();
@@ -187,7 +187,7 @@ describe('Application life cycle test', function () {
         browser.get('https://' + app.fqdn + '/' + username + '/' + reponame);
         browser.findElement(by.id('repo-clone-ssh')).click();
         browser.findElement(by.id('repo-clone-url')).getAttribute('value').then(function (cloneUrl) {
-            expect(cloneUrl).to.be('ssh://cloudron@' + app.fqdn + ':29418/' + username + '/' + reponame + '.git');
+            expect(cloneUrl).to.be('ssh://git@' + app.fqdn + ':29418/' + username + '/' + reponame + '.git');
             done();
         });
     });
@@ -195,7 +195,7 @@ describe('Application life cycle test', function () {
     it('can clone the url', function (done) {
         var env = Object.create(process.env);
         env.GIT_SSH = __dirname + '/git_ssh_wrapper.sh';
-        execSync('git clone ssh://cloudron@' + app.fqdn + ':29418/' + username + '/' + reponame + '.git ' + repodir, { env: env });
+        execSync('git clone ssh://git@' + app.fqdn + ':29418/' + username + '/' + reponame + '.git ' + repodir, { env: env });
         expect(fs.existsSync(repodir + '/newfile')).to.be(true);
         rimraf.sync(repodir);
         done();