-
Notifications
You must be signed in to change notification settings - Fork 167
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: Allow developers to run API in docker, and select between mutable and immutable modes #1888
base: main
Are you sure you want to change the base?
Changes from 181 commits
2acfbf4
6583f5c
4f31e5f
cce6f7a
c4991ec
56e44ae
3e25945
88eae2e
025c8bf
d56ed3e
4c63f56
c99b45a
6d06599
cff7a67
3dc4cb4
9d2d6f4
24c0e47
2ec2e5a
28e44ca
a8a8cca
1505c47
8c25067
8152e18
05f6fe3
2ee6d63
ba5f9c2
1e484ec
59c0686
0460f1a
9d9adf1
6b2f228
232faaf
c73811a
d6ebcc1
248fbe7
4e947df
15a5087
7eb463a
706aa9a
ec404d6
cbd5555
58df797
0c6cecd
0a5b247
b9f0cd0
3a68220
c476df5
0e2f819
5198e65
07af2a9
ce438c7
1da42a6
049b073
8c61b67
154bf3b
8fa8139
61cff27
ade0482
546ef14
c023f75
a6a7546
4e35dc0
95871e5
d072ef4
ca84fda
6b94719
95cc504
161cafb
8b58e27
8e8373a
98af2e0
19acaea
100d199
d5bc754
41dcfea
c717523
4c7f1f0
0c35371
b0d007b
7d3a12a
ed6801b
e18d670
8c81f43
b7f913b
b485471
7f7db7f
645ae98
067850e
b8cb9c6
372e56a
77c0619
70798f6
321b746
e7329de
38f615b
bdec45c
6d87890
a7aaaf4
17259d8
72201b6
103716b
54f92e3
5013376
5d97c1d
6c07889
96b545f
ceefe58
0aadacf
e4fb007
100304a
120b8df
fd5a0a5
56ad251
462fdb9
63a2966
abd6139
2215b4d
c7097c0
a11960b
4c92b5c
ff96394
00fb9f2
27c10f0
820b351
4dd20fc
4534772
6a4ca59
9f2b293
d47fcda
c430674
5068b2e
654bc29
ea4ab1e
8d29a28
66d0a29
84cb321
eaa33a1
3780af0
b0095e8
023ea0a
b38b38f
b3ca51f
59082db
cc7f3a4
1d00208
5646559
b94ca4d
ea08a80
3c3b573
e290b7c
55768d6
010ead3
6a6b217
d2ae2e2
592dc8f
55dd671
372e2ad
9e22911
85ce475
d722db0
c47119a
35d0ef1
2ed41c2
ed45a13
51a9f61
a86f7f8
6e6ae7f
f2ff90b
78494eb
bfee0c3
c33105a
55e2aba
d242e09
df55213
dffc744
82c73d4
4737976
9929366
3d272d8
0a979ee
9998341
b043d10
669e3e9
8a46de3
06eadfe
887a944
d1da8c4
0970904
a090356
bd82712
ec8e6ce
69c748d
9b0584c
6708db9
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,38 +1,40 @@ | ||
# needs to be real so create a personal magic.link account or use the staging key | ||
MAGIC_SECRET_KEY=secret | ||
|
||
# Everything below this line can be left as-is for local development | ||
DATABASE_TOKEN=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJzdXBhYmFzZSIsImlhdCI6MTYwMzk2ODgzNCwiZXhwIjoyNTUwNjUzNjM0LCJyb2xlIjoic2VydmljZV9yb2xlIn0.necIJaiP7X2T2QjGeV-FhpkizcNTX8HjDDBAxpgQTEI | ||
DATABASE_URL=http://post-rest:3000 | ||
|
||
# Wrangler overrides | ||
DEBUG=true | ||
ENV=dev | ||
LOGTAIL_TOKEN=secret | ||
|
||
# API Secrets | ||
# the salt is literally secret, not a random string, just 'secret' | ||
SALT=secret | ||
MAILCHIMP_API_KEY=secret | ||
METAPLEX_AUTH_TOKEN=secret | ||
|
||
LOGTAIL_TOKEN=secret | ||
# Dev private key for ucan auth | ||
# You can use this one or create a new key with the ucan cli `ucan-storage keypair` | ||
# needs to be real so create a personal magic.link account or use the staging key | ||
MAGIC_SECRET_KEY=INSERT_MAGIC_SECRET_KEY | ||
|
||
MAILCHIMP_API_KEY=secret | ||
METAPLEX_AUTH_TOKEN=metaplex-test-token | ||
PRIVATE_KEY=xmbtWjE9eYuAxae9G65lQSkw36HV6H+0LSFq2aKqVwY= | ||
SALT=secret | ||
|
||
## API Sentry | ||
SENTRY_DSN=https://[email protected]/00000 | ||
SENTRY_TOKEN=secret | ||
SENTRY_UPLOAD=false | ||
|
||
## API PostgREST | ||
DATABASE_URL=http://localhost:3000 | ||
DATABASE_TOKEN=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJzdXBhYmFzZSIsImlhdCI6MTYwMzk2ODgzNCwiZXhwIjoyNTUwNjUzNjM0LCJyb2xlIjoic2VydmljZV9yb2xlIn0.necIJaiP7X2T2QjGeV-FhpkizcNTX8HjDDBAxpgQTEI | ||
## Flags | ||
MAINTENANCE_MODE=rw | ||
|
||
## Git | ||
VERSION=development | ||
COMMITHASH=development-hash | ||
BRANCH=development | ||
|
||
# Postgres Database | ||
DATABASE_CONNECTION=postgresql://postgres:postgres@localhost:5432/postgres | ||
DATABASE_CONNECTION=postgresql://postgres:postgres@db:5432/postgres | ||
|
||
# Cluster | ||
CLUSTER_BASIC_AUTH_TOKEN = dGVzdDp0ZXN0 | ||
CLUSTER_SERVICE = | ||
CLUSTER_API_URL = http://localhost:9094 | ||
CLUSTER_API_URL=http://ipfs-cluster:9094 | ||
|
||
# Maintenance Mode | ||
MAINTENANCE_MODE = rw | ||
|
@@ -42,4 +44,4 @@ S3_ENDPOINT = http://localhost:9095 | |
S3_REGION = test | ||
S3_ACCESS_KEY_ID = test | ||
S3_SECRET_ACCESS_KEY = test | ||
S3_BUCKET_NAME = test | ||
S3_BUCKET_NAME = test |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -21,33 +21,8 @@ jobs: | |
- uses: actions/setup-node@v2 | ||
with: | ||
node-version: '16' | ||
- uses: bahmutov/npm-install@v1 | ||
- run: npx playwright install-deps | ||
- run: yarn test:api | ||
env: | ||
DATABASE_URL: http://localhost:3000 | ||
DATABASE_TOKEN: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJzdXBhYmFzZSIsImlhdCI6MTYwMzk2ODgzNCwiZXhwIjoyNTUwNjUzNjM0LCJyb2xlIjoic2VydmljZV9yb2xlIn0.necIJaiP7X2T2QjGeV-FhpkizcNTX8HjDDBAxpgQTEI | ||
DATABASE_CONNECTION: postgresql://postgres:postgres@localhost:5432/postgres | ||
deploy-dev: | ||
name: Deploy Dev | ||
if: github.event_name == 'pull_request' && github.ref != 'refs/heads/main' | ||
runs-on: ubuntu-latest | ||
needs: test | ||
steps: | ||
- uses: actions/checkout@v2 | ||
- uses: actions/setup-node@v2 | ||
with: | ||
node-version: '16' | ||
- uses: bahmutov/npm-install@v1 | ||
- name: Publish app | ||
if: env.CF_API_TOKEN | ||
uses: cloudflare/[email protected] | ||
env: | ||
SENTRY_TOKEN: ${{secrets.SENTRY_TOKEN}} | ||
CF_API_TOKEN: ${{secrets.CF_API_TOKEN}} | ||
with: | ||
apiToken: ${{secrets.CF_API_TOKEN }} | ||
workingDirectory: 'packages/api' | ||
- run: 'cp .env.tpl .env' | ||
- run: yarn test:api:docker | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I like the cp approach here to better simulate what we do. Not sure I understand why we are getting rid of deploy-dev? In web3.storage we were feeling we should have it too, as this is useful to test something without merging to main, as other things might need to be shipped and get blocked on a staging test for a large feature. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It's possible that @redaphid and I were confused about deploy-dev. We both thought it was a remnant of the local-tunnel days, where you had to deploy to cloudflare in order to run the dev environment at all. If it's still useful as an ad-hoc "not quite staging" env we can bring it back. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
It is, but it will be re-written with new commits in other PRs which is annoying. Would love to be able to trigger it in CI for a specific branch, but I think we won't be able to provide a branch on a manual workflow trigger There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. yes please keep the deploy-dev job and also this yaml is not valid at all i think. |
||
deploy-staging: | ||
name: Deploy Staging | ||
if: github.event_name == 'push' && github.ref == 'refs/heads/main' | ||
|
Original file line number | Diff line number | Diff line change | ||
---|---|---|---|---|
|
@@ -4,11 +4,13 @@ | |||
"packages/*" | ||||
], | ||||
"scripts": { | ||||
"dev:api": "cd packages/api && yarn dev", | ||||
"dev:api": "yarn --cwd packages/api dev", | ||||
"dev:api:persist": "yarn --cwd packages/api dev:persist", | ||||
"dev:website": "cd packages/website && yarn dev", | ||||
"test": "run-s test:*", | ||||
"test:client": "yarn --cwd packages/client test", | ||||
"test:api": "yarn --cwd packages/api test", | ||||
"test:api:docker": "yarn --cwd packages/api test:docker", | ||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||
"test:website": "yarn --cwd packages/website test", | ||||
"build:client:docs": "yarn --cwd packages/client typedoc", | ||||
"build:website": "yarn --cwd packages/website build", | ||||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
dist/ | ||
./docker/db_data/ |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -26,7 +26,7 @@ eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJkaWQ6ZXRocjoweDY1MDA3QTczOWFiN0F | |
In the case you need to clean up docker after failed tests or debugging session you can just run the command below. | ||
|
||
```bash | ||
yarn clean | ||
yarn dev:clean | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We don't have a |
||
``` | ||
|
||
### Dev CLI scripts | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -106,3 +106,4 @@ INSERT INTO public.metric (name, value, updated_at) | |
|
||
INSERT INTO public."user" (magic_link_id, github_id, name, email, public_address) VALUES ('did:ethr:0x65007A739ab7AC5c537161249b81250E49e2853C', 'github|000000', 'mock user', '[email protected]', '0x65007A739ab7AC5c537161249b81250E49e2853C'); | ||
INSERT INTO public.auth_key (name, secret, user_id) VALUES ('main', 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJkaWQ6ZXRocjoweDY1MDA3QTczOWFiN0FDNWM1MzcxNjEyNDliODEyNTBFNDllMjg1M0MiLCJpc3MiOiJuZnQtc3RvcmFnZSIsImlhdCI6MTYzOTc1NDczNjYzOCwibmFtZSI6Im1haW4ifQ.wKwJIRXXHsgwVp8mOQp6r3_F4Lz5lnoAkgVP8wqwA_Y', 1); | ||
INSERT INTO public.user_tag (user_id, tag, value, reason) VALUES (1, 'HasPsaAccess', 'true', 'bc this is for testing'); |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
FROM node:16-alpine3.12 | ||
|
||
HEALTHCHECK --interval=5s --timeout=5s --retries=3 \ | ||
CMD curl -f http://localhost:8787/stats || exit 1 | ||
|
||
# Install some utilities to make debugging easier | ||
RUN apk add --update bash curl vim tmux postgresql-client | ||
|
||
RUN npm i -g nodemon | ||
RUN mkdir -p /app | ||
|
||
WORKDIR /app | ||
|
||
# Make your docker builds 100x faster with this one trick :) | ||
COPY ./package.json . | ||
RUN yarn install | ||
|
||
COPY ./tsconfig.json . | ||
COPY ./docker/scripts ./docker-scripts | ||
COPY ./scripts ./scripts | ||
COPY ./db ./db | ||
COPY ./src/ ./src | ||
|
||
ENTRYPOINT ["nodemon", "--watch", "src/", "--exec", "'./docker-scripts/run-miniflare.sh'" ] |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
services: | ||
api: | ||
ports: | ||
- '8787:8787' | ||
volumes: | ||
- ../src:/app/src |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
services: | ||
post-rest: | ||
ports: | ||
- '3000:3000' | ||
db: | ||
ports: | ||
- '5432:5432' | ||
ipfs-cluster: | ||
ports: | ||
- '9094:9094' |
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -1,57 +1,126 @@ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
version: '3.6' | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
services: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
rest: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
post-rest: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
image: postgrest/postgrest:v9.0.0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
depends_on: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- db | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
restart: always | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ports: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- 3000:3000/tcp | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- db-init | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
environment: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PGRST_DB_URI: postgres://postgres:postgres@db:5432/postgres | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PGRST_DB_URI: $DATABASE_CONNECTION | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PGRST_DB_SCHEMAS: public,cargo | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PGRST_DB_ANON_ROLE: postgres | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PGRST_JWT_SECRET: super-secret-jwt-token-with-at-least-32-characters-long | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
db-init: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
build: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
dockerfile: './docker/Dockerfile' | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
context: '../' | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
entrypoint: 'psql $DATABASE_CONNECTION -v "ON_ERROR_STOP=1" -f ./db/config.sql -f ./db/tables.sql -f ./db/cargo.testing.sql -f ./db/functions.sql' | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think we should have a init.sql script here. If we add a new sql file that needs to run, it will be difficult for the developer to understand the multiple places where it should be added. So, having a init.sql that would execute the other files would be rad. Not super sure how to do it, but found this There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. That's a good idea, especially if we start having fancier migrations - we can just hook them into the init script. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
depends_on: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
db: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
condition: service_healthy | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
environment: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- DATABASE_CONNECTION | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- DATABASE_URL | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- DATABASE_TOKEN | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
api: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
restart: on-failure | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
build: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
dockerfile: ./docker/Dockerfile | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
context: ../ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
environment: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- BRANCH | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- CLUSTER_API_URL | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- CLUSTER_BASIC_AUTH_TOKEN | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- CLUSTER_SERVICE | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- COMMITHASH | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- DATABASE_CONNECTION | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- DATABASE_TOKEN | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- DATABASE_URL | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- DEBUG | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- ENV | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- LOGTAIL_TOKEN | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- MAGIC_SECRET_KEY | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- MAILCHIMP_API_KEY | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- MAINTENANCE_MODE | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- METAPLEX_AUTH_TOKEN | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- PRIVATE_KEY | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- SALT | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- SENTRY_DSN | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- VERSION | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
depends_on: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- post-rest | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- ipfs-cluster | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
db: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
restart: on-failure | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
healthcheck: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
test: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
[ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
'CMD', | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
'psql', | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
'$DATABASE_CONNECTION', | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
'-v', | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
'ON_ERROR_STOP=1', | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
'-c', | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
'SELECT 1', | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
interval: '1s' | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
timeout: '1s' | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
retries: 100 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
build: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
context: ./postgres | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
deploy: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
resources: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
limits: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cpus: '2' | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
memory: 2G | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
reservations: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cpus: '1' | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
memory: 1G | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ports: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- 5432:5432 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
environment: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DATABASE_CONNECTION: $DATABASE_CONNECTION | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
POSTGRES_DB: postgres | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
POSTGRES_USER: postgres | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
POSTGRES_PASSWORD: postgres | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
POSTGRES_PORT: 5432 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ipfs0: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
container_name: ipfs0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ipfs: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
image: ipfs/go-ipfs:v0.10.0 # update this when go-ipfs M1 macs https://github.com/ipfs/go-ipfs/issues/8645 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
volumes: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- ./compose/ipfs0:/data/ipfs | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cluster0: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
container_name: cluster0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
image: ipfs/ipfs-cluster:v1.0.0-rc4 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ipfs-cluster: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
image: ipfs/ipfs-cluster:v1.0.0-rc4 # we need to use this image tag, as nft.storage expects CIDs to come back in a certain format | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
depends_on: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- ipfs0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- ipfs | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
environment: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CLUSTER_PEERNAME: cluster0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CLUSTER_PEERNAME: cluster | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CLUSTER_SECRET: ${CLUSTER_SECRET} # From shell variable if set | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CLUSTER_IPFSHTTP_NODEMULTIADDRESS: /dns4/ipfs0/tcp/5001 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CLUSTER_IPFSHTTP_NODEMULTIADDRESS: /dns4/ipfs/tcp/5001 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CLUSTER_CRDT_TRUSTEDPEERS: '*' # Trust all peers in Cluster | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CLUSTER_RESTAPI_HTTPLISTENMULTIADDRESS: /ip4/0.0.0.0/tcp/9094 # Expose API | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CLUSTER_RESTAPI_BASICAUTHCREDENTIALS: test:test | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CLUSTER_RESTAPI_CORSALLOWEDMETHODS: GET,POST,OPTIONS | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CLUSTER_RESTAPI_CORSALLOWEDHEADERS: authorization | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CLUSTER_MONITORPINGINTERVAL: 2s # Speed up peer discovery | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ports: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- '127.0.0.1:9094:9094' | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
volumes: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- ./compose/cluster0:/data/ipfs-cluster | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
playwright: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
profiles: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- test | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
depends_on: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
api: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
condition: service_healthy | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is cool :) Didn't realize you could set conditions on dependencies. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It's in the new(ish) It was useful for making sure the 'sidecar'-esque db init container had exited successfully before continuing. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
build: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
dockerfile: ./docker/test.Dockerfile | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
context: ../ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
environment: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- BRANCH | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- CLUSTER_API_URL | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- CLUSTER_BASIC_AUTH_TOKEN | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- CLUSTER_SERVICE | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- COMMITHASH | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- DATABASE_CONNECTION | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- DATABASE_TOKEN | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- DATABASE_URL | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- DEBUG | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- ENV | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- LOGTAIL_TOKEN | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- MAGIC_SECRET_KEY | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- MAILCHIMP_API_KEY | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- MAINTENANCE_MODE | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- METAPLEX_AUTH_TOKEN | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- PRIVATE_KEY | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- S3_ACCESS_KEY_ID | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- S3_BUCKET_NAME | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- S3_ENDPOINT | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- S3_REGION | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- S3_SECRET_ACCESS_KEY | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- SALT | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- SENTRY_DSN | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- VERSION | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Comment on lines
+93
to
+126
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,13 +1,7 @@ | ||
FROM supabase/postgres:13.3.0 | ||
FROM supabase/postgres:12.5.0 | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Why are we downgrading? |
||
|
||
COPY 00-initial-schema.sql /docker-entrypoint-initdb.d/00-initial-schema.sql | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. we should add the other sql files here |
||
|
||
# Run time values | ||
ENV POSTGRES_DB=postgres | ||
ENV POSTGRES_USER=postgres | ||
ENV POSTGRES_PASSWORD=postgres | ||
ENV POSTGRES_PORT=5432 | ||
|
||
EXPOSE 5432 | ||
|
||
# Enables cat /var/lib/postgresql/data/pg_log/postgresql.log within the container to debug queries | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could we keep same comments as before?
I find them useful when we need to tweak the environment, for instance if we need to do. debug session in staging environment