管理與時(shí)間跟蹤的容器化)
Docker 部署 Super Productivity 完整指南3 條命令跑通任務(wù)管理與時(shí)間跟蹤的容器化【免費(fèi)下載鏈接】super-productivitySuper Productivity is an advanced todo list app with integrated Timeboxing and time tracking capabilities. It also comes with integrations for Jira, GitLab, GitHub and Open Project.項(xiàng)目地址: https://gitcode.com/GitHub_Trending/su/super-productivitySuper Productivity 是一款集成了 Timeboxing 時(shí)間盒與時(shí)間跟蹤的待辦應(yīng)用還內(nèi)置了 Jira、GitLab、GitHub 等集成。用它做團(tuán)隊(duì)共享的任務(wù)面板時(shí)最常見(jiàn)的痛點(diǎn)是每個(gè)同事本地裝一遍環(huán)境、同步服務(wù)配不明白、換臺(tái)機(jī)器數(shù)據(jù)就沒(méi)了。用 Docker 部署 Super Productivity 后這些問(wèn)題基本都能收斂成一條docker compose up -d命令。 部署路徑選型先確認(rèn)你要跑哪種組合倉(cāng)庫(kù)根目錄的docker-compose.yaml里其實(shí)預(yù)置了四組服務(wù)app應(yīng)用本體、webdav同步服務(wù)器、dbPostgreSQL 15、supersyncSuperSync 同步后端定義在 packages/super-sync-server/ 中。按你的場(chǎng)景對(duì)號(hào)入座個(gè)人自用、單設(shè)備訪(fǎng)問(wèn)只起appwebdav兩個(gè)服務(wù)最輕量多設(shè)備數(shù)據(jù)同步把dbsupersync一起拉起來(lái)走 SuperSync 通道E2E 測(cè)試環(huán)境用docker-compose.e2e.yaml生產(chǎn)構(gòu)建跑測(cè)試或docker-compose.e2e.fast.yaml本地依賴(lài) 卷掛載迭代最快多架構(gòu)分發(fā)需要 amd64/arm64 鏡像時(shí)走 Buildx 流程見(jiàn)下文先判斷場(chǎng)景再敲命令能少走一半彎路。? 最快上手三步在 8080 端口看到應(yīng)用下面是個(gè)人自用場(chǎng)景的最小路徑克隆倉(cāng)庫(kù)后直接起容器不需要你手動(dòng)裝任何運(yùn)行依賴(lài)git clone https://gitcode.com/GitHub_Trending/su/super-productivity cd super-productivity docker compose up -d app webdav它做的事拉取現(xiàn)成的app鏡像并映射8080:80同時(shí)啟動(dòng) WebDAV 同步服務(wù)。啟動(dòng)完成后瀏覽器訪(fǎng)問(wèn)http://localhost:8080即可進(jìn)入應(yīng)用。? 多架構(gòu)鏡像構(gòu)建Buildx 一條命令出雙架構(gòu)鏡像如果你要在自己的服務(wù)器比如 ARM 的 Mac 或樹(shù)莓派上二次分發(fā)就需要構(gòu)建多架構(gòu)鏡像。Buildx 是 Docker 官方的構(gòu)建擴(kuò)展支持一次構(gòu)建產(chǎn)出多個(gè) CPU 架構(gòu)的鏡像docker buildx create --use docker buildx build --platform linux/amd64,linux/arm64 -t super-productivity:local .第二條命令會(huì)同時(shí)產(chǎn)出 amd64 和 arm64 兩個(gè)鏡像并推入本地鏡像庫(kù)。倉(cāng)庫(kù)里的三個(gè) Dockerfile 各有分工別拿錯(cuò)了Dockerfile生產(chǎn)鏡像。兩階段構(gòu)建——先用node:22編譯 Angular 前端構(gòu)建階段用--platform$BUILDPLATFORM所以交叉構(gòu)建不會(huì)卡在依賴(lài)安裝上再用nginx:1托管靜態(tài)產(chǎn)物這是唯一適合上生產(chǎn)的Dockerfile.e2e.dev跑ng serve開(kāi)發(fā)服務(wù)器的測(cè)試鏡像端口 4242完整復(fù)制源碼并在容器內(nèi)裝依賴(lài)Dockerfile.e2e.dev.fast同是開(kāi)發(fā)服務(wù)器但跳過(guò)依賴(lài)安裝靠docker-compose.e2e.fast.yaml把本地目錄掛載進(jìn)容器改代碼秒級(jí)生效本地調(diào) E2E 時(shí)用它關(guān)鍵配置詳解持久化、環(huán)境變量與反向代理這三件事別忘數(shù)據(jù)持久化兩個(gè)命名卷已經(jīng)幫你定義好了docker-compose.yaml末尾聲明了db_data和webdav_data兩個(gè)命名卷SuperSync 的數(shù)據(jù)庫(kù)落在db_dataWebDAV 同步的文件落在webdav_data。你什么都不用改容器重建數(shù)據(jù)也不會(huì)丟。想換到指定磁盤(pán)目錄時(shí)在 volumes 里把對(duì)應(yīng)卷改寫(xiě)成綁定掛載即可例如volumes: webdav_data: driver: local需要持久化自己的數(shù)據(jù)目錄時(shí)再仿照這個(gè)結(jié)構(gòu)加一個(gè)卷掛載到對(duì)應(yīng)路徑。環(huán)境變量?jī)煞菖渲梦募姆止e搞混src/environments/下有environment.tsproduction: false和environment.prod.tsproduction: true它們是編譯期配置Docker 生產(chǎn)構(gòu)建會(huì)自動(dòng)取 prod 那份一般不用動(dòng)。真正在運(yùn)行時(shí)生效的是容器環(huán)境變量入口腳本docker-entrypoint.sh會(huì)在啟動(dòng)時(shí)用jq把WEBDAV_BASE_URL、WEBDAV_USERNAME、WEBDAV_SYNC_FOLDER_PATH、SYNC_INTERVAL分鐘、IS_COMPRESSION_ENABLED、IS_ENCRYPTION_ENABLED等變量寫(xiě)成assets/sync-config-default-override.json讓?xiě)?yīng)用開(kāi)箱即預(yù)填好 WebDAV 同步配置。在 compose 的app服務(wù)里追加或覆蓋這些變量就行。Nginx 反向代理內(nèi)置模板已支持 WebDAV 轉(zhuǎn)發(fā)生產(chǎn)鏡像基于 nginx配置模板在nginx/default.conf.template。它做兩件事根路徑/托管前端靜態(tài)文件帶 SPA 回退到index.html/webdav/前綴的請(qǐng)求轉(zhuǎn)發(fā)到$WEBDAV_BACKEND指定的后端并自動(dòng)剝掉前綴。監(jiān)聽(tīng)端口由APP_PORT控制默認(rèn) 80。如果你還要把整個(gè)應(yīng)用掛在自家網(wǎng)關(guān)后面只需按這個(gè)模板加一層代理上游指向http://容器IP:8080路徑保持透?jìng)骷纯伞? 排障與調(diào)優(yōu)先看日志再查健康檢查最后限資源容器起不來(lái)直接跟日志90% 的問(wèn)題一眼可見(jiàn)docker compose logs -f app同步服務(wù)連不上db和supersync都配了 healthcheck后者每 5 秒探測(cè)/health接口一條命令看全服務(wù)狀態(tài)和健康標(biāo)記docker compose ps重點(diǎn)看supersync是否處于healthy。它依賴(lài)db通過(guò)健康檢查后才啟動(dòng)db卡在starting時(shí)先看docker compose logs -f db。資源受限的環(huán)境比如 2 核小主機(jī)上跑給app服務(wù)加資源上限防止同步高峰把宿主機(jī)吃滿(mǎn)services: app: deploy: resources: limits: cpus: 0.5 memory: 512M這段配置限制容器最多用半核 CPU 和 512MB 內(nèi)存supersync和db同理可加。從選型、構(gòu)建到排障這條 Docker 部署 Super Productivity 的路徑覆蓋了絕大多數(shù)場(chǎng)景個(gè)人用戶(hù)三步起容器多設(shè)備走 SuperSync分發(fā)走 Buildx。環(huán)境細(xì)節(jié)與更多變量說(shuō)明建議再翻一遍 docs/ENV_SETUP.md那是倉(cāng)庫(kù)內(nèi)關(guān)于環(huán)境搭建最完整的文檔?!久赓M(fèi)下載鏈接】super-productivitySuper Productivity is an advanced todo list app with integrated Timeboxing and time tracking capabilities. It also comes with integrations for Jira, GitLab, GitHub and Open Project.項(xiàng)目地址: https://gitcode.com/GitHub_Trending/su/super-productivity創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考