mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-06 14:27:59 +00:00
Merge pull request #1385 from akhilmhdh/feat/init-container
feat: changed docker compose to use init container pattern for running migration
This commit is contained in:
+7
-5
@@ -3,16 +3,18 @@
|
|||||||
# THIS IS A SAMPLE ENCRYPTION KEY AND SHOULD NEVER BE USED FOR PRODUCTION
|
# THIS IS A SAMPLE ENCRYPTION KEY AND SHOULD NEVER BE USED FOR PRODUCTION
|
||||||
ENCRYPTION_KEY=6c1fe4e407b8911c104518103505b218
|
ENCRYPTION_KEY=6c1fe4e407b8911c104518103505b218
|
||||||
|
|
||||||
|
# Required
|
||||||
|
DB_CONNECTION_URI=postgres://infisical:infisical@db:5432/infisical
|
||||||
|
|
||||||
# JWT
|
# JWT
|
||||||
# Required secrets to sign JWT tokens
|
# Required secrets to sign JWT tokens
|
||||||
# THIS IS A SAMPLE AUTH_SECRET KEY AND SHOULD NEVER BE USED FOR PRODUCTION
|
# THIS IS A SAMPLE AUTH_SECRET KEY AND SHOULD NEVER BE USED FOR PRODUCTION
|
||||||
AUTH_SECRET=5lrMXKKWCVocS/uerPsl7V+TX/aaUaI7iDkgl3tSmLE=
|
AUTH_SECRET=5lrMXKKWCVocS/uerPsl7V+TX/aaUaI7iDkgl3tSmLE=
|
||||||
|
|
||||||
# MongoDB
|
# Postgres creds
|
||||||
# Backend will connect to the MongoDB instance at connection string MONGO_URL which can either be a ref
|
POSTGRES_PASSWORD=infisical
|
||||||
# to the MongoDB container instance or Mongo Cloud
|
POSTGRES_USER=infisical
|
||||||
# Required
|
POSTGRES_DB=infisical
|
||||||
MONGO_URL=mongodb://root:example@mongo:27017/?authSource=admin
|
|
||||||
|
|
||||||
# Redis
|
# Redis
|
||||||
REDIS_URL=redis://redis:6379
|
REDIS_URL=redis://redis:6379
|
||||||
|
|||||||
@@ -5,16 +5,10 @@ push:
|
|||||||
docker-compose -f docker-compose.yml push
|
docker-compose -f docker-compose.yml push
|
||||||
|
|
||||||
up-dev:
|
up-dev:
|
||||||
docker-compose -f docker-compose.dev.yml up --build
|
docker compose -f docker-compose.dev.yml up --build
|
||||||
|
|
||||||
up-pg-dev:
|
|
||||||
docker compose -f docker-compose.pg.yml up --build
|
|
||||||
|
|
||||||
i-dev:
|
|
||||||
infisical run -- docker-compose -f docker-compose.dev.yml up --build
|
|
||||||
|
|
||||||
up-prod:
|
up-prod:
|
||||||
docker-compose -f docker-compose.yml up --build
|
docker-compose -f docker-compose.prod.yml up --build
|
||||||
|
|
||||||
down:
|
down:
|
||||||
docker-compose down
|
docker-compose down
|
||||||
|
|||||||
+80
-82
@@ -1,4 +1,4 @@
|
|||||||
version: '3'
|
version: "3.9"
|
||||||
|
|
||||||
services:
|
services:
|
||||||
nginx:
|
nginx:
|
||||||
@@ -10,36 +10,84 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
- ./nginx/default.dev.conf:/etc/nginx/conf.d/default.conf:ro
|
- ./nginx/default.dev.conf:/etc/nginx/conf.d/default.conf:ro
|
||||||
depends_on:
|
depends_on:
|
||||||
- frontend
|
|
||||||
- backend
|
- backend
|
||||||
networks:
|
- frontend
|
||||||
- infisical-dev
|
|
||||||
|
|
||||||
backend:
|
db:
|
||||||
container_name: infisical-dev-backend
|
image: postgres:14-alpine
|
||||||
restart: unless-stopped
|
ports:
|
||||||
|
- "5432:5432"
|
||||||
|
volumes:
|
||||||
|
- postgres-data:/var/lib/postgresql/data
|
||||||
|
environment:
|
||||||
|
POSTGRES_PASSWORD: infisical
|
||||||
|
POSTGRES_USER: infisical
|
||||||
|
POSTGRES_DB: infisical
|
||||||
|
|
||||||
|
redis:
|
||||||
|
image: redis
|
||||||
|
container_name: infisical-dev-redis
|
||||||
|
environment:
|
||||||
|
- ALLOW_EMPTY_PASSWORD=yes
|
||||||
|
ports:
|
||||||
|
- 6379:6379
|
||||||
|
volumes:
|
||||||
|
- redis_data:/data
|
||||||
|
|
||||||
|
redis-commander:
|
||||||
|
container_name: infisical-dev-redis-commander
|
||||||
|
image: rediscommander/redis-commander
|
||||||
|
restart: always
|
||||||
depends_on:
|
depends_on:
|
||||||
- mongo
|
|
||||||
- smtp-server
|
|
||||||
- redis
|
- redis
|
||||||
|
environment:
|
||||||
|
- REDIS_HOSTS=local:redis:6379
|
||||||
|
ports:
|
||||||
|
- "8085:8081"
|
||||||
|
|
||||||
|
db-test:
|
||||||
|
profiles: ["test"]
|
||||||
|
image: postgres:14-alpine
|
||||||
|
ports:
|
||||||
|
- "5430:5432"
|
||||||
|
environment:
|
||||||
|
POSTGRES_PASSWORD: infisical
|
||||||
|
POSTGRES_USER: infisical
|
||||||
|
POSTGRES_DB: infisical-test
|
||||||
|
|
||||||
|
db-migration:
|
||||||
|
container_name: infisical-db-migration
|
||||||
|
depends_on:
|
||||||
|
- db
|
||||||
build:
|
build:
|
||||||
context: ./backend
|
context: ./backend
|
||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile.dev
|
||||||
volumes:
|
|
||||||
- ./backend/src:/app/src
|
|
||||||
- ./backend/nodemon.json:/app/nodemon.json
|
|
||||||
- /app/node_modules
|
|
||||||
- ./backend/api-documentation.json:/app/api-documentation.json
|
|
||||||
- ./backend/swagger.ts:/app/swagger.ts
|
|
||||||
command: npm run dev
|
|
||||||
env_file: .env
|
env_file: .env
|
||||||
|
environment:
|
||||||
|
- DB_CONNECTION_URI=postgres://infisical:infisical@db/infisical?sslmode=disable
|
||||||
|
command: npm run migration:latest
|
||||||
|
|
||||||
|
backend:
|
||||||
|
container_name: infisical-dev-api
|
||||||
|
build:
|
||||||
|
context: ./backend
|
||||||
|
dockerfile: Dockerfile.dev
|
||||||
|
depends_on:
|
||||||
|
db:
|
||||||
|
condition: service_started
|
||||||
|
redis:
|
||||||
|
condition: service_started
|
||||||
|
db-migration:
|
||||||
|
condition: service_completed_successfully
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
|
ports:
|
||||||
|
- 4000:4000
|
||||||
environment:
|
environment:
|
||||||
- NODE_ENV=development
|
- NODE_ENV=development
|
||||||
- MONGO_URL=mongodb://root:example@mongo:27017/?authSource=admin
|
- DB_CONNECTION_URI=postgres://infisical:infisical@db/infisical?sslmode=disable
|
||||||
networks:
|
volumes:
|
||||||
- infisical-dev
|
- ./backend/src:/app/src
|
||||||
extra_hosts:
|
|
||||||
- "host.docker.internal:host-gateway"
|
|
||||||
|
|
||||||
frontend:
|
frontend:
|
||||||
container_name: infisical-dev-frontend
|
container_name: infisical-dev-frontend
|
||||||
@@ -55,81 +103,31 @@ services:
|
|||||||
env_file: .env
|
env_file: .env
|
||||||
environment:
|
environment:
|
||||||
- NEXT_PUBLIC_ENV=development
|
- NEXT_PUBLIC_ENV=development
|
||||||
- INFISICAL_TELEMETRY_ENABLED=${TELEMETRY_ENABLED}
|
- INFISICAL_TELEMETRY_ENABLED=false
|
||||||
networks:
|
|
||||||
- infisical-dev
|
|
||||||
|
|
||||||
mongo:
|
pgadmin:
|
||||||
image: mongo
|
image: dpage/pgadmin4
|
||||||
container_name: infisical-dev-mongo
|
|
||||||
restart: always
|
restart: always
|
||||||
env_file: .env
|
|
||||||
environment:
|
environment:
|
||||||
- MONGO_INITDB_ROOT_USERNAME=root
|
PGADMIN_DEFAULT_EMAIL: [email protected]
|
||||||
- MONGO_INITDB_ROOT_PASSWORD=example
|
PGADMIN_DEFAULT_PASSWORD: pass
|
||||||
volumes:
|
|
||||||
- mongo-data:/data/db
|
|
||||||
networks:
|
|
||||||
- infisical-dev
|
|
||||||
|
|
||||||
mongo-express:
|
|
||||||
container_name: infisical-dev-mongo-express
|
|
||||||
image: mongo-express
|
|
||||||
restart: always
|
|
||||||
depends_on:
|
|
||||||
- mongo
|
|
||||||
env_file: .env
|
|
||||||
environment:
|
|
||||||
- ME_CONFIG_MONGODB_ADMINUSERNAME=root
|
|
||||||
- ME_CONFIG_MONGODB_ADMINPASSWORD=example
|
|
||||||
- ME_CONFIG_MONGODB_URL=mongodb://root:example@mongo:27017/
|
|
||||||
ports:
|
ports:
|
||||||
- 8081:8081
|
- 5050:80
|
||||||
networks:
|
depends_on:
|
||||||
- infisical-dev
|
- db
|
||||||
|
|
||||||
smtp-server:
|
smtp-server:
|
||||||
container_name: infisical-dev-smtp-server
|
container_name: infisical-dev-smtp-server
|
||||||
image: lytrax/mailhog:latest # https://github.com/mailhog/MailHog/issues/353#issuecomment-821137362
|
image: lytrax/mailhog:latest # https://github.com/mailhog/MailHog/issues/353#issuecomment-821137362
|
||||||
restart: always
|
restart: always
|
||||||
logging:
|
logging:
|
||||||
driver: 'none' # disable saving logs
|
driver: "none" # disable saving logs
|
||||||
ports:
|
ports:
|
||||||
- 1025:1025 # SMTP server
|
- 1025:1025 # SMTP server
|
||||||
- 8025:8025 # Web UI
|
- 8025:8025 # Web UI
|
||||||
networks:
|
|
||||||
- infisical-dev
|
|
||||||
|
|
||||||
redis:
|
|
||||||
image: redis
|
|
||||||
container_name: infisical-dev-redis
|
|
||||||
environment:
|
|
||||||
- ALLOW_EMPTY_PASSWORD=yes
|
|
||||||
ports:
|
|
||||||
- 6379:6379
|
|
||||||
volumes:
|
|
||||||
- redis_data:/data
|
|
||||||
networks:
|
|
||||||
- infisical-dev
|
|
||||||
|
|
||||||
redis-commander:
|
|
||||||
container_name: infisical-dev-redis-commander
|
|
||||||
image: rediscommander/redis-commander
|
|
||||||
restart: always
|
|
||||||
depends_on:
|
|
||||||
- redis
|
|
||||||
environment:
|
|
||||||
- REDIS_HOSTS=local:redis:6379
|
|
||||||
ports:
|
|
||||||
- "8085:8081"
|
|
||||||
networks:
|
|
||||||
- infisical-dev
|
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
mongo-data:
|
postgres-data:
|
||||||
driver: local
|
driver: local
|
||||||
redis_data:
|
redis_data:
|
||||||
driver: local
|
driver: local
|
||||||
|
|
||||||
networks:
|
|
||||||
infisical-dev:
|
|
||||||
|
|||||||
@@ -1,146 +0,0 @@
|
|||||||
version: "3.9"
|
|
||||||
|
|
||||||
services:
|
|
||||||
nginx:
|
|
||||||
container_name: infisical-dev-nginx
|
|
||||||
image: nginx
|
|
||||||
restart: always
|
|
||||||
ports:
|
|
||||||
- 8080:80
|
|
||||||
volumes:
|
|
||||||
- ./nginx/default.dev.conf:/etc/nginx/conf.d/default.conf:ro
|
|
||||||
depends_on:
|
|
||||||
- backend
|
|
||||||
- frontend
|
|
||||||
|
|
||||||
db:
|
|
||||||
image: postgres:14-alpine
|
|
||||||
ports:
|
|
||||||
- "5432:5432"
|
|
||||||
volumes:
|
|
||||||
- postgres-data:/var/lib/postgresql/data
|
|
||||||
environment:
|
|
||||||
POSTGRES_PASSWORD: infisical
|
|
||||||
POSTGRES_USER: infisical
|
|
||||||
POSTGRES_DB: infisical
|
|
||||||
|
|
||||||
redis:
|
|
||||||
image: redis
|
|
||||||
container_name: infisical-dev-redis
|
|
||||||
environment:
|
|
||||||
- ALLOW_EMPTY_PASSWORD=yes
|
|
||||||
ports:
|
|
||||||
- 6379:6379
|
|
||||||
volumes:
|
|
||||||
- redis_data:/data
|
|
||||||
|
|
||||||
redis-commander:
|
|
||||||
container_name: infisical-dev-redis-commander
|
|
||||||
image: rediscommander/redis-commander
|
|
||||||
restart: always
|
|
||||||
depends_on:
|
|
||||||
- redis
|
|
||||||
environment:
|
|
||||||
- REDIS_HOSTS=local:redis:6379
|
|
||||||
ports:
|
|
||||||
- "8085:8081"
|
|
||||||
|
|
||||||
db-test:
|
|
||||||
profiles: ["test"]
|
|
||||||
image: postgres:14-alpine
|
|
||||||
ports:
|
|
||||||
- "5430:5432"
|
|
||||||
environment:
|
|
||||||
POSTGRES_PASSWORD: infisical
|
|
||||||
POSTGRES_USER: infisical
|
|
||||||
POSTGRES_DB: infisical-test
|
|
||||||
|
|
||||||
backend:
|
|
||||||
container_name: infisical-dev-api
|
|
||||||
build:
|
|
||||||
context: ./backend
|
|
||||||
dockerfile: Dockerfile.dev
|
|
||||||
depends_on:
|
|
||||||
- db
|
|
||||||
- redis
|
|
||||||
env_file:
|
|
||||||
- .env
|
|
||||||
ports:
|
|
||||||
- 4000:4000
|
|
||||||
environment:
|
|
||||||
- NODE_ENV=development
|
|
||||||
- DB_CONNECTION_URI=postgres://infisical:infisical@db/infisical?sslmode=disable
|
|
||||||
volumes:
|
|
||||||
- ./backend/src:/app/src
|
|
||||||
|
|
||||||
frontend:
|
|
||||||
container_name: infisical-dev-frontend
|
|
||||||
restart: unless-stopped
|
|
||||||
depends_on:
|
|
||||||
- backend
|
|
||||||
build:
|
|
||||||
context: ./frontend
|
|
||||||
dockerfile: Dockerfile.dev
|
|
||||||
volumes:
|
|
||||||
- ./frontend/src:/app/src/ # mounted whole src to avoid missing reload on new files
|
|
||||||
- ./frontend/public:/app/public
|
|
||||||
env_file: .env
|
|
||||||
environment:
|
|
||||||
- NEXT_PUBLIC_ENV=development
|
|
||||||
- INFISICAL_TELEMETRY_ENABLED=false
|
|
||||||
|
|
||||||
pgadmin:
|
|
||||||
image: dpage/pgadmin4
|
|
||||||
restart: always
|
|
||||||
environment:
|
|
||||||
PGADMIN_DEFAULT_EMAIL: [email protected]
|
|
||||||
PGADMIN_DEFAULT_PASSWORD: pass
|
|
||||||
ports:
|
|
||||||
- 5050:80
|
|
||||||
depends_on:
|
|
||||||
- db
|
|
||||||
|
|
||||||
smtp-server:
|
|
||||||
container_name: infisical-dev-smtp-server
|
|
||||||
image: lytrax/mailhog:latest # https://github.com/mailhog/MailHog/issues/353#issuecomment-821137362
|
|
||||||
restart: always
|
|
||||||
logging:
|
|
||||||
driver: "none" # disable saving logs
|
|
||||||
ports:
|
|
||||||
- 1025:1025 # SMTP server
|
|
||||||
- 8025:8025 # Web UI
|
|
||||||
|
|
||||||
# mongo:
|
|
||||||
# image: mongo
|
|
||||||
# container_name: infisical-dev-mongo
|
|
||||||
# restart: always
|
|
||||||
# env_file: .env
|
|
||||||
# environment:
|
|
||||||
# - MONGO_INITDB_ROOT_USERNAME=root
|
|
||||||
# - MONGO_INITDB_ROOT_PASSWORD=example
|
|
||||||
# volumes:
|
|
||||||
# - mongo-data:/data/db
|
|
||||||
# ports:
|
|
||||||
# - 27017:27017
|
|
||||||
#
|
|
||||||
# mongo-express:
|
|
||||||
# container_name: infisical-dev-mongo-express
|
|
||||||
# image: mongo-express
|
|
||||||
# restart: always
|
|
||||||
# depends_on:
|
|
||||||
# - mongo
|
|
||||||
# env_file: .env
|
|
||||||
# environment:
|
|
||||||
# - ME_CONFIG_MONGODB_ADMINUSERNAME=root
|
|
||||||
# - ME_CONFIG_MONGODB_ADMINPASSWORD=example
|
|
||||||
# - ME_CONFIG_MONGODB_URL=mongodb://root:example@mongo:27017/
|
|
||||||
# ports:
|
|
||||||
# - 8081:8081
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
postgres-data:
|
|
||||||
driver: local
|
|
||||||
redis_data:
|
|
||||||
driver: local
|
|
||||||
mongo-data:
|
|
||||||
driver: local
|
|
||||||
@@ -1,12 +1,27 @@
|
|||||||
version: "3"
|
version: "3"
|
||||||
|
|
||||||
services:
|
services:
|
||||||
|
db-migration:
|
||||||
|
container_name: infisical-db-migration
|
||||||
|
depends_on:
|
||||||
|
- db
|
||||||
|
image: infisical/infisical:latest-postgres
|
||||||
|
env_file: .env
|
||||||
|
command: npm run migration:latest
|
||||||
|
networks:
|
||||||
|
- infisical
|
||||||
|
|
||||||
backend:
|
backend:
|
||||||
container_name: infisical-backend
|
container_name: infisical-backend
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
depends_on:
|
depends_on:
|
||||||
- mongo
|
db:
|
||||||
image: infisical/infisical:latest
|
condition: service_started
|
||||||
|
redis:
|
||||||
|
condition: service_started
|
||||||
|
db-migration:
|
||||||
|
condition: service_completed_successfully
|
||||||
|
image: infisical/infisical:latest-postgres
|
||||||
env_file: .env
|
env_file: .env
|
||||||
ports:
|
ports:
|
||||||
- 80:8080
|
- 80:8080
|
||||||
@@ -28,21 +43,18 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
- redis_data:/data
|
- redis_data:/data
|
||||||
|
|
||||||
mongo:
|
db:
|
||||||
container_name: infisical-mongo
|
container_name: infisical-db
|
||||||
image: mongo
|
image: postgres:14-alpine
|
||||||
restart: always
|
restart: always
|
||||||
env_file: .env
|
env_file: .env
|
||||||
environment:
|
|
||||||
- MONGO_INITDB_ROOT_USERNAME=${MONGO_USERNAME}
|
|
||||||
- MONGO_INITDB_ROOT_PASSWORD=${MONGO_PASSWORD}
|
|
||||||
volumes:
|
volumes:
|
||||||
- mongo-data:/data/db
|
- pg_data:/data/db
|
||||||
networks:
|
networks:
|
||||||
- infisical
|
- infisical
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
mongo-data:
|
pg_data:
|
||||||
driver: local
|
driver: local
|
||||||
redis_data:
|
redis_data:
|
||||||
driver: local
|
driver: local
|
||||||
Reference in New Issue
Block a user