ソースを参照

Improve Makefile for faster development

Andrea Fazzi 5 年 前
コミット
1f80f74035
5 ファイル変更131 行追加6 行削除
  1. 6 2
      Makefile
  2. 66 0
      compose/karmen/docker-compose_outside_docker.yml
  3. 50 0
      config/config_outside_docker.yaml
  4. 5 1
      main.go
  5. 4 3
      watch.sh

+ 6 - 2
Makefile

@@ -1,6 +1,6 @@
 PHONY: all
 
-run:
+run_with_docker:
 	docker-compose -f compose/karmen/docker-compose.yml down
 	docker-compose -f compose/karmen/docker-compose.yml up --build -d
 	echo "Uploading files to the cloud..."
@@ -14,4 +14,8 @@ run:
 	curl -u admin:password http://localhost:8080/remote.php/webdav/Documents/Department/template.md -X PUT --data-binary @"./generator/generators/department/example_1/resources/template.md"
 	curl -u admin:password http://localhost:8080/remote.php/webdav/Documents/Department/reference.odt -X PUT --data-binary @"./generator/generators/department/example_1/resources/reference.odt"
 
-all: run
+run_outside_docker:
+	docker-compose -f compose/karmen/docker-compose_outside_docker.yml up -d db
+	go run main.go --config=config/config_outside_docker.yaml
+
+all: run_with_docker

+ 66 - 0
compose/karmen/docker-compose_outside_docker.yml

@@ -0,0 +1,66 @@
+version: "3.3"
+
+services:
+
+  app:
+    build: ../../
+    ports:
+      - 3000:3000
+    environment:
+      - DB_HOST=db
+      - DB_PORT=3306
+    volumes:
+      - /etc/localtime:/etc/localtime:ro
+
+  db:
+    image: mariadb
+    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
+    restart: always
+    volumes:
+      - db:/var/lib/mysql
+      - ./sql:/docker-entrypoint-initdb.d
+    env_file:
+      - db.env
+
+  ldap_server:
+    restart: always
+    build: ./ldap
+    # command: --loglevel debug
+    domainname: foo.org
+    hostname: foo.org
+    ports:
+      - 389:389
+    environment:
+      - LDAP_ORGANISATION=Foo Organization
+      - LDAP_DOMAIN=foo.org
+      - LDAP_ADMIN_PASSWORD=admin
+
+  ldap_web_client:
+    restart: always
+    image: osixia/phpldapadmin
+    environment:
+      - PHPLDAPADMIN_LDAP_HOSTS=ldap_server
+      - PHPLDAPADMIN_HTTPS=false
+    ports:
+      - 3001:80
+
+  nextcloud_server:
+    restart: always
+    image: nextcloud:17
+    container_name: nextcloud_server
+    environment:
+      - SQLITE_DATABASE=nextcloud
+      - NEXTCLOUD_ADMIN_USER=admin
+      - NEXTCLOUD_ADMIN_PASSWORD=password
+      - NEXTCLOUD_TRUSTED_DOMAINS=nextcloud_server
+    # volumes:
+    #   - ./data:/var/www/html/data
+    #   - ./config:/var/www/html/config
+    ports:
+      - 8080:80
+
+volumes:
+  db:
+  
+
+      

+ 50 - 0
config/config_outside_docker.yaml

@@ -0,0 +1,50 @@
+url: "http://localhost:3000"
+domain: "foo.org"
+log_level: 2
+
+keys:
+  cookie_store_key: "something-very-secret"
+  jwt_signing_key: "secret"
+  
+orm:
+  connection: "karmen:karmen@tcp(localhost:3307)/karmen_dev"
+  options: "charset=utf8&parseTime=True&loc=Local"
+  automigrate: true
+  regenerate: false
+
+ldap:
+  host: "ldap_server:389"
+  admin_cn: "admin"
+  admin_password: "admin"
+  people_dn: "ou=People"
+  teachers_dn: "ou=People"
+  groups_dn: "ou=Groups"
+  maildir_base_parh: "/var/mail/foo.org"
+  mail_quota: "10240"
+  first_uid_number: "5000"
+  mail_gid_number: "5000"
+
+admin:
+  username: "admin"
+  password: "admin"
+
+sync:
+  safe_run: false
+  verbose: true
+  send_mail: false
+  schedule: "@every 10m"
+  teachers_search_base: "ou=Teachers,ou=People,dc=foo,dc=org"
+  administratives_search_base: "ou=Administratives,ou=People,dc=foo,dc=org"
+  teachers_group: "cn=Teachers"
+  administratives_group: "cn=Administratives"
+  teachers_ml: "cn=Teachers,ou=Mailing Lists"
+  departments_coordinators_group: "cn=Coordinatori Dipartimenti"
+  departments_coordinators_ml: "cn=Coordinatori Dipartimenti,ou=Mailing Lists"
+
+cloud:
+  username: admin
+  password: password
+  url: "http://nextcloud_server/remote.php/webdav/"
+  
+documents:
+  output_path: "output"

+ 5 - 1
main.go

@@ -1,6 +1,7 @@
 package main
 
 import (
+	"flag"
 	"fmt"
 	"log"
 	"net/http"
@@ -36,8 +37,11 @@ var (
 )
 
 func main() {
+	configFile := flag.String("config", "Load the given config file", "config/config.yaml")
+	flag.Parse()
+
 	log.Println("Loading config file...")
-	err = config.ReadFile("config/config.yaml", config.Config)
+	err = config.ReadFile(*configFile, config.Config)
 	if err != nil {
 		panic(err)
 	}

+ 4 - 3
watch.sh

@@ -1,8 +1,9 @@
 #!/bin/bash
 
-echo "Executing Makefile..."
-make -k
+echo "Executing Makefile... $1"
+
+make -k $1
 
 while inotifywait -r -e modify ./; do
-    make -k
+    make -k $1
 done