"Ini bisnis yang berbahaya, Frodo, untuk melampaui ambang batas: ada gunanya menginjakkan kaki di jalan dan, jika Anda membebaskan kaki Anda, Anda tidak akan tahu ke mana Anda akan dibawa."
(c) Penguasa Cincin: Persekutuan Cincin
Bagaimana semuanya dimulai
Saya ingin memiliki server Git rumahan untuk berlatih mengembangkan dan menerapkan proyek hewan peliharaan. Plus, lebih tenang saat pekerjaan Anda tidak hanya di github.
Alpine linux, . . , , .
Proxmox 6.1-3, Alpine (template) - Alpine Linux 3.12 Kernel 5.3.10-1-pve on an x86_64.
Git- . , . git-, . Gogs.io.
:
, .. ;
Golang - ;
;
.
. :
- 4 x AMD Ryzen 3 1200 Quad-Core
- 8
- SSD ZFS
1-2 . . , 1-2 git- , 512 8 .
Alpine
Alpine Proxmox . . , . , .
, . Alpine :
alpine:~# apk search zabbix
:
alpine:~# hostname gogs-githost
openssh nano , ssh:
gogs-githost:~# apk add openssh nano
:
gogs-githost:~# rc-update add sshd
/etc/ssh/sshd_config :
...
Port 22
…
PermitRootLogin yes
...
, :
gogs-githost:~# /etc/init.d/sshd start
Gogs
gogs-githost:~# apk add gogs
fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/community/x86_64/APKINDEX.tar.gz
(1/8) Installing ca-certificates (20191127-r4)
(2/8) Installing nghttp2-libs (1.41.0-r0)
(3/8) Installing libcurl (7.69.1-r3)
(4/8) Installing expat (2.2.9-r1)
(5/8) Installing pcre2 (10.35-r0)
(6/8) Installing git (2.26.3-r0)
(7/8) Installing gogs (0.11.91-r1)
Executing gogs-0.11.91-r1.pre-install
(8/8) Installing gogs-openrc (0.11.91-r1)
Executing busybox-1.31.1-r19.trigger
Executing ca-certificates-20191127-r4.trigger
OK: 89 MiB in 38 packages
, gogs , git. :
gogs-githost:~# gogs web
2021/03/18 20:13:42 [ WARN] Custom config '/usr/bin/custom/conf/app.ini' not found, ignore this if you're running first time
2021/03/18 20:13:42 [TRACE] Custom path: /usr/bin/custom
2021/03/18 20:13:42 [TRACE] Log path: /usr/bin/log
2021/03/18 20:13:42 [TRACE] Log Mode: Console (Trace)
2021/03/18 20:13:42 [ INFO] Gogs 0.11.91.0811
2021/03/18 20:13:42 [ INFO] Cache Service Enabled
2021/03/18 20:13:42 [ INFO] Session Service Enabled
2021/03/18 20:13:42 [ INFO] SQLite3 Supported
2021/03/18 20:13:42 [ INFO] Run Mode: Development
2021/03/18 20:13:42 [FATAL] [...gogs/gogs/cmd/web.go:66 checkVersion()] Fail to read 'templates/.VERSION': open /usr/bin/templates/.VERSION: no such file or directory
, . /usr/bin, gogs.
. .
gogs-githost:~# gogs -v
Gogs version 0.11.91.0811
gogs-githost:/opt# wget https://dl.gogs.io/0.11.91/gogs_0.11.91_linux_amd64.tar.gz
:
gogs-githost:/opt# tar -xvf gogs_0.11.91_linux_amd64.tar.gz
, , . gogs:
gogs-githost:/opt# chown -R root:root gogs
(: , - Alpine mysl, ):
gogs-githost:/opt/gogs# ./gogs web
-ash: ./gogs: not found
gogs Alpine :
gogs-githost:/opt/gogs# cp /usr/bin/gogs gogs
! -. …
, “ !” . , Alpine, . , , .
- Alpine () . gogs Alpine.
- , . - . , gogs- :
gogs-githost:~# gogs web -c /etc/gogs/conf/app.ini
2021/03/20 19:22:47 [TRACE] Custom path: /usr/bin/custom
2021/03/20 19:22:47 [TRACE] Log path: /var/log/gogs
2021/03/20 19:22:47 [TRACE] Log Mode: File (Info)
2021/03/20 19:22:47 [ INFO] Gogs 0.11.91.0811
-, -.
, . GUI, , bash.
, . , - /etc/init.d/gogs, :
#!/sbin/openrc-run
name=gogs
conffile="$GOGS_CUSTOM/conf/app.ini"
command="/usr/bin/gogs"
command_args="web -c $conffile"
start_stop_daemon_args="${GOGS_USER:+--user} $GOGS_USER --env GOGS_CUSTOM=$GOGS_CUSTOM"
pidfile="/var/run/gogs.pid"
command_background="yes"
depend() {
use logger dns
need net
after firewall
}
:
#!/sbin/openrc-run
name=gogs
conffile="/etc/gogs/conf/app.ini"
command="/usr/bin/gogs"
command_args="web -c $conffile"
start_stop_daemon_args="${GOGS_USER:+--user} root --env GOGS_CUSTOM=/etc/gogs"
pidfile="/var/run/gogs.pid"
command_background="yes"
depend() {
use logger dns
need net
after firewall
}
, - (, -). Alpine?
, ! , . , openssh.
Saya memutuskan untuk memeriksa lagi - saya mengkloning container dengan Alpine dan sudah mengonfigurasi ssh. Dan kemudian semuanya menjadi sangat sederhana:
alpine:~# apk add gogs
alpine:~# rc-update add gogs
* service gogs added to runlevel default
alpine:~# /etc/init.d/gogs start
* Starting gogs ... [ ok ]
alpine:~# rc-status
Runlevel: default
networking [ started ]
sshd [ started ]
crond [ started ]
gogs [ started ]
Ini benar-benar cukup untuk mengaktifkan dan menjalankan server Git Anda (jika Anda senang dengan database SQLite). Sekarang Anda dapat pergi ke antarmuka web, bagi saya itu http://192.168.50.205:3000, dan buat pengaturan dasar.
Kesimpulan
Dengan artikel ini, saya ingin menyoroti pentingnya dokumentasi dan keterampilan Linux. Kemungkinan besar, pengguna Linux yang berpengalaman segera mengerti apa yang terjadi dan menertawakan amatirisme saya dengan sepenuh hati. Nah, sekarang lucu buat saya sendiri betapa berliku jalan saya dulu =).
Tetapi kenyataannya juga bahwa saya tidak menemukan bantuan sederhana untuk memperluas paket gogs di Alpine. Saya harap artikel saya bermanfaat bagi mereka yang memikirkan hal seperti ini.