# You should know that Docker Compose works with services. # 1 service = 1 container. # For example, a service, a server, a client, a database... # We use the keyword 'services' to start to create services. services: app: # service name container_name: llama_cpp_src_build build: ./app image: llama_cpp_src_build restart: always environment: - TZ=Asia/Bangkok # - MODELFILENAME=Tiel-Coder-35B-A3B-UD-IQ3_XXS.gguf # - SERVERARGS=--host 0.0.0.0 --port 8080 --no-mmap --fit-ctx 204800 --cache-reuse 256 --jinja # - MODELFILENAME=Nail-Qwen3.6-35B-A3B-MTP-UD-IQ3_XXS.gguf # - SERVERARGS=--host 0.0.0.0 --port 8080 --no-mmap --fit-ctx 204800 --jinja --fit-target 2048 --cache-reuse 256 --temp 1.0 --top-k 20 --min-p 0 #--mmproj /appfolder/mountvolume/Nail-Qwen3.6-35B-A3B-MTP-UD-IQ3_XXS-mmproj-F16.gguf # - MODELFILENAME=Gemma4-12B-QAT-Uncensored-HauhauCS-Balanced-Q4_K_M.gguf # - SERVERARGS=--host 0.0.0.0 --port 8080 --no-mmap --fit-ctx 204800 --jinja --fit-target 2048 --cache-reuse 256 --presence-penalty 0.0 --repeat-penalty 1.0 -md /appfolder/mountvolume/mtp-gemma-4-12B-it.gguf --spec-type draft-mtp --mmproj /appfolder/mountvolume/mmproj-Gemma4-12B-QAT-Uncensored-HauhauCS-Balanced-BF16.gguf --jinja --chat-template-file /appfolder/mountvolume/gemma-4-E4B-chat_template.jinja # - MODELFILENAME=gemma-4-E4B-it-qat-UD-Q4_K_XL.gguf # - SERVERARGS=--host 0.0.0.0 --port 8080 --fit-ctx 131072 --fit-target 2048 --no-mmap --mmproj /appfolder/mountvolume/gemma-4-E4B-it-qat-UD-Q4_K_XL-mmproj-BF16.gguf --jinja --chat-template-file /appfolder/mountvolume/gemma-4-E4B-chat_template.jinja # network_mode: "app-network" # networks: # - default ports: - 9001:8080 volumes: - ./mountvolume:/appfolder/mountvolume # privileged: true deploy: resources: limits: cpus: '10' # memory: 7200M reservations: devices: - driver: nvidia device_ids: ['0'] # choose between device_ids or count capabilities: [gpu] # The name of our service is "database" # but you can use the name of your choice. # Note: This may change the commands you are going to use a little bit. # database: # # Official Postgres image from DockerHub (we use the last version) # image: 'postgres:latest' # By default, a Postgres database is running on the 5432 port. # If we want to access the database from our computer (outside the container), # we must share the port with our computer's port. # The syntax is [port we want on our machine]:[port we want to retrieve in the container] # Note: You are free to change your computer's port, # but take into consideration that it will change the way # you are connecting to your database. # networks: # - backend # ports: # - 5432:5432 # environment: # POSTGRES_USER: username # The PostgreSQL user (useful to connect to the database) # POSTGRES_PASSWORD: password # The PostgreSQL password (useful to connect to the database) # volumes: # # In this example, we share the folder `db-data` in our root repository, with the default PostgreSQL data path. # # It means that every time the repository is modifying the data inside # # of `/var/lib/postgresql/data/`, automatically the change will appear in `db-data`. # # You don't need to create the `db-data` folder. Docker Compose will do it for you. # - ./mountvolume/dbdata/:/var/lib/postgresql/data/ # networks: # default: # name: https-network # driver: bridge # external: true