fix: environment file missing for space (#3105)

* fix: environment file missing for space

* dev: remove container name from the docker-compose local

* dockerfile.dev modified for volumes

* local dev fixes

---------

Co-authored-by: Manish Gupta <manish@mgupta.me>
This commit is contained in:
Nikhil 2023-12-14 16:18:02 +05:30 committed by GitHub
parent 1f8ae3a5ad
commit 5c7382d894
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 92 additions and 46 deletions

View File

@ -33,8 +33,8 @@ The backend is a django project which is kept inside apiserver
1. Clone the repo 1. Clone the repo
```bash ```bash
git clone https://github.com/makeplane/plane git clone https://github.com/makeplane/plane.git [folder-name]
cd plane cd [folder-name]
chmod +x setup.sh chmod +x setup.sh
``` ```
@ -44,33 +44,12 @@ chmod +x setup.sh
./setup.sh ./setup.sh
``` ```
3. Define `NEXT_PUBLIC_API_BASE_URL=http://localhost` in **web/.env** and **space/.env** file 3. Start the containers
```bash ```bash
echo "\nNEXT_PUBLIC_API_BASE_URL=http://localhost\n" >> ./web/.env docker compose -f docker-compose-local.yml up
``` ```
```bash
echo "\nNEXT_PUBLIC_API_BASE_URL=http://localhost\n" >> ./space/.env
```
4. Run Docker compose up
```bash
docker compose up -d
```
5. Install dependencies
```bash
yarn install
```
6. Run the web app in development mode
```bash
yarn dev
```
## Missing a Feature? ## Missing a Feature?

View File

@ -49,5 +49,5 @@ USER captain
# Expose container port and run entry point script # Expose container port and run entry point script
EXPOSE 8000 EXPOSE 8000
# CMD [ "./bin/takeoff" ] CMD [ "./bin/takeoff.local" ]

31
apiserver/bin/takeoff.local Executable file
View File

@ -0,0 +1,31 @@
#!/bin/bash
set -e
python manage.py wait_for_db
python manage.py migrate
# Create the default bucket
#!/bin/bash
# Collect system information
HOSTNAME=$(hostname)
MAC_ADDRESS=$(ip link show | awk '/ether/ {print $2}' | head -n 1)
CPU_INFO=$(cat /proc/cpuinfo)
MEMORY_INFO=$(free -h)
DISK_INFO=$(df -h)
# Concatenate information and compute SHA-256 hash
SIGNATURE=$(echo "$HOSTNAME$MAC_ADDRESS$CPU_INFO$MEMORY_INFO$DISK_INFO" | sha256sum | awk '{print $1}')
# Export the variables
export MACHINE_SIGNATURE=$SIGNATURE
# Register instance
python manage.py register_instance $MACHINE_SIGNATURE
# Load the configuration variable
python manage.py configure_instance
# Create the default bucket
python manage.py create_bucket
python manage.py runserver 0.0.0.0:8000 --settings=plane.settings.local

View File

@ -12,7 +12,6 @@ volumes:
services: services:
plane-redis: plane-redis:
container_name: plane-redis
image: redis:6.2.7-alpine image: redis:6.2.7-alpine
restart: unless-stopped restart: unless-stopped
networks: networks:
@ -21,7 +20,6 @@ services:
- redisdata:/data - redisdata:/data
plane-minio: plane-minio:
container_name: plane-minio
image: minio/minio image: minio/minio
restart: unless-stopped restart: unless-stopped
networks: networks:
@ -36,7 +34,6 @@ services:
MINIO_ROOT_PASSWORD: ${AWS_SECRET_ACCESS_KEY} MINIO_ROOT_PASSWORD: ${AWS_SECRET_ACCESS_KEY}
plane-db: plane-db:
container_name: plane-db
image: postgres:15.2-alpine image: postgres:15.2-alpine
restart: unless-stopped restart: unless-stopped
networks: networks:
@ -53,7 +50,6 @@ services:
PGDATA: /var/lib/postgresql/data PGDATA: /var/lib/postgresql/data
web: web:
container_name: web
build: build:
context: . context: .
dockerfile: ./web/Dockerfile.dev dockerfile: ./web/Dockerfile.dev
@ -61,8 +57,7 @@ services:
networks: networks:
- dev_env - dev_env
volumes: volumes:
- .:/app - ./web:/app/web
command: yarn dev --filter=web
env_file: env_file:
- ./web/.env - ./web/.env
depends_on: depends_on:
@ -73,22 +68,17 @@ services:
build: build:
context: . context: .
dockerfile: ./space/Dockerfile.dev dockerfile: ./space/Dockerfile.dev
container_name: space
restart: unless-stopped restart: unless-stopped
networks: networks:
- dev_env - dev_env
volumes: volumes:
- .:/app - ./space:/app/space
command: yarn dev --filter=space
env_file:
- ./space/.env
depends_on: depends_on:
- api - api
- worker - worker
- web - web
api: api:
container_name: api
build: build:
context: ./apiserver context: ./apiserver
dockerfile: Dockerfile.dev dockerfile: Dockerfile.dev
@ -99,7 +89,7 @@ services:
- dev_env - dev_env
volumes: volumes:
- ./apiserver:/code - ./apiserver:/code
command: /bin/sh -c "python manage.py migrate && python manage.py runserver 0.0.0.0:8000 --settings=plane.settings.local" # command: /bin/sh -c "python manage.py migrate && python manage.py runserver 0.0.0.0:8000 --settings=plane.settings.local"
env_file: env_file:
- ./apiserver/.env - ./apiserver/.env
depends_on: depends_on:
@ -107,7 +97,6 @@ services:
- plane-redis - plane-redis
worker: worker:
container_name: bgworker
build: build:
context: ./apiserver context: ./apiserver
dockerfile: Dockerfile.dev dockerfile: Dockerfile.dev
@ -127,7 +116,6 @@ services:
- plane-redis - plane-redis
beat-worker: beat-worker:
container_name: beatworker
build: build:
context: ./apiserver context: ./apiserver
dockerfile: Dockerfile.dev dockerfile: Dockerfile.dev
@ -147,10 +135,9 @@ services:
- plane-redis - plane-redis
proxy: proxy:
container_name: proxy
build: build:
context: ./nginx context: ./nginx
dockerfile: Dockerfile dockerfile: Dockerfile.dev
restart: unless-stopped restart: unless-stopped
networks: networks:
- dev_env - dev_env

10
nginx/Dockerfile.dev Normal file
View File

@ -0,0 +1,10 @@
FROM nginx:1.25.0-alpine
RUN rm /etc/nginx/conf.d/default.conf
COPY nginx.conf.dev /etc/nginx/nginx.conf.template
COPY ./env.sh /docker-entrypoint.sh
RUN chmod +x /docker-entrypoint.sh
# Update all environment variables
CMD ["/docker-entrypoint.sh"]

View File

@ -18,7 +18,7 @@ server {
proxy_set_header Host $host; proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Real-IP $remote_addr;
} }
location /space/ { location /spaces/ {
proxy_pass http://localhost:4000/; proxy_pass http://localhost:4000/;
proxy_set_header Host $host; proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Real-IP $remote_addr;

36
nginx/nginx.conf.dev Normal file
View File

@ -0,0 +1,36 @@
events {
}
http {
sendfile on;
server {
listen 80;
root /www/data/;
access_log /var/log/nginx/access.log;
client_max_body_size ${FILE_SIZE_LIMIT};
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "no-referrer-when-downgrade" always;
add_header Permissions-Policy "interest-cohort=()" always;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
location / {
proxy_pass http://web:3000/;
}
location /api/ {
proxy_pass http://api:8000/api/;
}
location /spaces/ {
rewrite ^/spaces/?$ /spaces/login break;
proxy_pass http://space:4000/spaces/;
}
location /${BUCKET_NAME}/ {
proxy_pass http://plane-minio:9000/uploads/;
}
}
}

View File

@ -6,7 +6,6 @@ export LC_ALL=C
export LC_CTYPE=C export LC_CTYPE=C
cp ./web/.env.example ./web/.env cp ./web/.env.example ./web/.env
cp ./space/.env.example ./space/.env
cp ./apiserver/.env.example ./apiserver/.env cp ./apiserver/.env.example ./apiserver/.env
# Generate the SECRET_KEY that will be used by django # Generate the SECRET_KEY that will be used by django

View File

@ -7,5 +7,8 @@ WORKDIR /app
COPY . . COPY . .
RUN yarn global add turbo RUN yarn global add turbo
RUN yarn install RUN yarn install
EXPOSE 3000 EXPOSE 4000
ENV NEXT_PUBLIC_DEPLOY_WITH_NGINX=1
VOLUME [ "/app/node_modules", "/app/space/node_modules"]
CMD ["yarn","dev", "--filter=space"] CMD ["yarn","dev", "--filter=space"]

View File

@ -8,4 +8,5 @@ COPY . .
RUN yarn global add turbo RUN yarn global add turbo
RUN yarn install RUN yarn install
EXPOSE 3000 EXPOSE 3000
VOLUME [ "/app/node_modules", "/app/web/node_modules" ]
CMD ["yarn", "dev", "--filter=web"] CMD ["yarn", "dev", "--filter=web"]