diff --git a/docker/.env b/docker/.env new file mode 100644 index 00000000..09941f25 --- /dev/null +++ b/docker/.env @@ -0,0 +1,4 @@ +APPHUB_VERSION=0.1 +DEPLOYMENT_VERSION=2.19.0 +GIT_VERSION=1.20.4 +PROXY_VERSION=2.10.3 \ No newline at end of file diff --git a/docker/README.md b/docker/README.md new file mode 100644 index 00000000..eb225a3d --- /dev/null +++ b/docker/README.md @@ -0,0 +1,20 @@ +# Docker + +## Test it + +All backend services of Websoft9 is packaged to Docker image, if you have install Docker + +``` +sudo docker network create websoft9 +wget https://websoft9.github.io/websoft9/docker/.env +wget https://websoft9.github.io/websoft9/docker/docker-compose.yml +sudo docker compose -p websoft9 up -d +``` + +## Develop it + +The folder **apphub, deployment, git, proxy** stored development files, and used for: + +- Optimize dockerfile +- Release version +- Build docker image by Githuh action \ No newline at end of file diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml new file mode 100644 index 00000000..435c15f9 --- /dev/null +++ b/docker/docker-compose.yml @@ -0,0 +1,79 @@ +version: "3.8" + +services: + apphub: + image: websoft9dev/apphub:$APP_VERSION + container_name: websoft9-apphub + ports: + - 127.0.0.1:9001:8080 + restart: always + volumes: + - apphub_logs:/websoft9/apphub/logs + - apphub_media:/websoft9/media + - apphub_config:/websoft9/apphub/src/conf + depends_on: + - deployment + - git + - proxy + + deployment: + image: websoft9dev/deployment:2.19.0 + container_name: websoft9-deployment + restart: always + ports: + - 9001-9999:9000 + volumes: + - portainer:/data + - /var/run/docker.sock:/var/run/docker.sock + labels: + com.docker.compose.w9_http.port: 9000 + + git: + image: websoft9dev/git:$APP_VERSION + container_name: websoft9-git + restart: always + volumes: + - gitea:/data + - /etc/timezone:/etc/timezone:ro + - /etc/localtime:/etc/localtime:ro + ports: + - 9001-9999:3000 + environment: + - INSTALL_LOCK=true + - DISABLE_SSH=true + - RUN_MODE=prod + - HTTP_PORT=3000 + - DISABLE_REGISTRATION=false + - REQUIRE_SIGNIN_VIEW=false + labels: + com.docker.compose.w9_http.port: 3000 + + proxy: + image: jc21/nginx-proxy-manager:${APP_VERSION} + container_name: websoft9-proxy + restart: always + ports: + - "80:80" + - "443:443" + - "9001-9999:81" + volumes: + - nginx_data:/data + - nginx_letsencrypt:/etc/letsencrypt + labels: + com.docker.compose.w9_http.port: 80 + com.docker.compose.w9_https.port: 443 + com.docker.compose.w9_console.port: 81 + +networks: + default: + name: websoft9 + external: true + +volumes: + apphub_logs: + apphub_media: + apphub_config: + portainer: + gitea: + nginx_data: + nginx_letsencrypt: \ No newline at end of file