This repository has been archived by the owner on Jul 24, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 9
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
e518919d - fix(cli): Use an IPV6-enabled network in CLI's compose file (#1299) 2024-07-01 09:46:10 +0000 - Oleksii Sholik electric-sql/electric@e518919d
- Loading branch information
1 parent
8c9747c
commit 36fa316
Showing
8 changed files
with
137 additions
and
73 deletions.
There are no files selected for viewing
63 changes: 0 additions & 63 deletions
63
packages/electricsql_cli/assets/docker/compose-with-postgres.yaml
This file was deleted.
Oops, something went wrong.
13 changes: 13 additions & 0 deletions
13
packages/electricsql_cli/assets/docker/compose.hostnet.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
# This extra compose file is meant to be used together with the main compose.yaml file when | ||
# running Docker Compose commands. | ||
# | ||
# In this file we configure both services to use the host network mode, side-stepping Docker | ||
# networking entirely. | ||
|
||
services: | ||
electric: | ||
network_mode: host | ||
|
||
postgres: | ||
# Postgres must be on the same network as the sync service. | ||
network_mode: host |
55 changes: 55 additions & 0 deletions
55
packages/electricsql_cli/assets/docker/compose.ip6net.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
# This extra compose file is meant to be used together with the main compose.yaml file when | ||
# running Docker Compose commands. | ||
# | ||
# In this file we define an IPv6-enabled network and assign it to both "electric" and | ||
# "postgres" services. | ||
|
||
networks: | ||
# An IPv6-enabled network is necessary for the sync service to connect to | ||
# databases that are only reachable at IPv6 addresses. IPv4 can also be used as usual with | ||
# this network. | ||
ip6net: | ||
enable_ipv6: true | ||
# These two options provide an escape hatch that allows users to define their own Docker | ||
# network using `docker network create` and use that for the services defined in this | ||
# compose file. | ||
# | ||
# These environment variables are set by the CLI and are derived from the single | ||
# user-facing `ELECTRIC_DOCKER_NETWORK_USE_EXTERNAL` variable. | ||
external: ${ELECTRIC_COMPOSE_NETWORK_IS_EXTERNAL} | ||
name: '${ELECTRIC_COMPOSE_EXTERNAL_NETWORK_NAME}' | ||
ipam: | ||
config: | ||
# Subnet definition isn't required if the Docker daemon has a default address pool for | ||
# IPv6 addresses configured. However, since that's not the case for Docker | ||
# out-of-the-box (at least until version 27.0.1) and since we want to free our users | ||
# from additional manual configuration when possible, we include a default subnet | ||
# definition here that should work with any Docker daemon configuration. | ||
# | ||
# The fd00:: prefix is part of the address space reserved for Unique Local Addresses, | ||
# i.e. private networks. This is analogous to 192.168.x.x in the IPv4 land. | ||
# | ||
# There is a possibility that this subnet overlaps with another network configured | ||
# separately for the same Docker daemon. That situation would result in `docker compose | ||
# up` failing with the error message | ||
# | ||
# Error response from daemon: Pool overlaps with other one on this address space | ||
# | ||
# To resolve this conflict, an external Docker network can be used by setting | ||
# `ELECTRIC_DOCKER_NETWORK_USE_EXTERNAL` to its name. | ||
# | ||
# The default subnet here has 2 randomly generated bytes in the 2nd and the 6th groups, | ||
# it can accommodate 4 addresses which is small enough to further reduce any chance of conflicts. | ||
- subnet: 'fd00:56f0::4acd:f0fc/126' | ||
|
||
services: | ||
electric: | ||
networks: | ||
# Despite the name, assigning this network to the sync service does not preclude the use | ||
# of IPv4. | ||
- ip6net | ||
|
||
postgres: | ||
networks: | ||
# Postgres must be on the same network as the sync service. | ||
- ip6net |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters