I create a support post for my question here : https://discord.com/channels/564160730845151244/564160731327758347/1113760474341838868
"Is it a way to have function on same docker network than appwrite / mariadb / redis / influxdb / others docker services ? To avoid hosts mapping (or network hit)"
To be able to connect redis via redis://redis, to call appwrite sdk with http://appwrite/v1 (and not domain name), etc. => Use docker network
Is this on a self-hosted Appwrite instance, Or on Appwrite cloud?
Self hosted
Then you have two options to achieve that. I'll write you in detail in couple of minutes
Appwrite docker compose utilize three networks (docker network is like a virtual switch)
- gateway - The default and not in use
- appwrite - Composed all of appwrite services and the
executor- the container that runs the runtimes. - runtimes - An isolated network between the
executorand any dynamiclly created runtimes. Like in the picture
The reason for that is to be able to isolated a - could-be-risky - code from the server.
So if you do want your function to share to access the main network you can either add the runtimes network to any service in your docker-compose.yml file that you want to be accessible from the functions one, for example to redis and mariadb
mariadb:
image: mariadb:10.7 # fix issues when upgrading using: mysql_upgrade -u root -p
container_name: appwrite-mariadb
<<: *x-logging
restart: unless-stopped
networks:
- appwrite
- runtimes
volumes:
- appwrite-mariadb:/var/lib/mysql:rw
environment:
- MYSQL_ROOT_PASSWORD=${_APP_DB_ROOT_PASS}
- MYSQL_DATABASE=${_APP_DB_SCHEMA}
- MYSQL_USER=${_APP_DB_USER}
- MYSQL_PASSWORD=${_APP_DB_PASS}
command: 'mysqld --innodb-flush-method=fsync'
redis:
image: redis:7.0.4-alpine
container_name: appwrite-redis
<<: *x-logging
restart: unless-stopped
command: >
redis-server
--maxmemory 512mb
--maxmemory-policy allkeys-lru
--maxmemory-samples 5
networks:
- appwrite
- runtimes
volumes:
- appwrite-redis:/data:rw
Or you can edit the .env file and set the value of OPEN_RUNTIMES_NETWORK to:
OPEN_RUNTIMES_NETWORK=appwrite_appwrite
And then all the function will be added to the main network.
After any change let docker reload the infrastructure by running
docker compose up -d
Oh don't understand that runtimes is internal network for function. i trie with "appwrite" network while appwrite-executor already on appwrite network It's works, ty ๐
[SOLVED] Function on same network than docker services
Recommended threads
- Can't really use the S3 storage device
hi, I've linked my local MinIO Instance (it's just for testing, not for prod.) to my appwrite instance, when i'm uploading a file it's getting uploaded to the S...
- Next.js SSR Site Times Out on First Visi...
Hey everyone, I'm running a Next.js SSR site on a self-hosted Appwrite server (v1.9.0), and I've noticed a strange behavior that I'm hoping someone can help me...
- Appwrite migration stuck on pending
Migration an existing self hosted 1.9.0 to a new VPS tuning self hosted 1.9.0.. import data recognises the api url, project id and api and then when I create, i...