summaryrefslogtreecommitdiff
path: root/.devcontainer/docker-compose.yaml
blob: 79f1da775eabc8364afb9cad682da9cd2c440609 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
services:
  couch:
    build:
      context: .
      dockerfile: Dockerfile
      args:
        # Base image for Erlang and Elixir. Useful choices include:
        # 1.11 -> Erlang 23, Debian Buster
        # 1.10 -> Erlang 22, Debian Buster
        # 1.9  -> Erlang 22, Debian Buster
        #
        # Older versions based on Debian Stretch will not include
        # SpiderMonkey 60, which the Dockerfile expects to be able
        # to install via apt-get.
        ELIXIR_VERSION: "1.10"

        # SpiderMonkey version to install with apt-get
        SM_VSN: "60"

        # This should always match the value in fdb.image
        FDB_VERSION: "6.2.28"

    environment:
      # This needs to match the name of the FoundationDB service below
      FDB_COORDINATOR: fdb

      # The location where the Dockerfile installs the FDB cluster file
      # retrieved from the `fdb` image. CouchDB looks for the cluster file in
      # this location by default. If you want to install it somewhere else you
      # you need to change "[erlfdb] cluster_file" and ERL_ZFLAGS to match.
      FDB_CLUSTER_FILE: /usr/local/etc/foundationdb/fdb.cluster

      # The test suite will default to trying to start its own fdbserver
      # process. This environment variable tells it to use the fdbserver
      # running in the `fdb` image instead. Quite a hacky solution. An
      # alternative might be to parameterize the Makefile so we can swap
      # `eunit.config` for a `devcontainer.config` via an environment variable
      # and maintain both config files in the repo.
      ERL_ZFLAGS: "-erlfdb test_cluster_file <<\\\"/usr/local/etc/foundationdb/fdb.cluster\\\">>"

    volumes:
      # Mounts the project folder to '/usr/src/couchdb'. The target path inside
      # the container should match what your application expects. In this case,
      # the compose file is in a sub-folder, so you will mount '..'. You would
      # then reference this path as the 'workspaceFolder' in
      # '.devcontainer/devcontainer.json' so VS Code starts here.
      - ..:/usr/src/couchdb:cached

    network_mode: service:fdb

  fdb:
    image: foundationdb/foundationdb:6.2.28