update dockerfiles and compose prod
This commit is contained in:
1 parent
b7cb8e026e
commit
86ec2ab34c
7 files changed
+141
-62
No files matched your search
+12
-21
@@ -87,27 +87,18 @@ steps:
|
||||
# docker-compose up -d backend frontend
|
||||
# EOF
|
||||
|
||||
# Wdrożenie na środowisko produkcyjne
|
||||
- name: deploy-production
|
||||
image: kroniak/ssh-client
|
||||
- name: deploy-production
|
||||
image: docker:latest
|
||||
environment:
|
||||
PROD_HOST: prodat.outbo.pl
|
||||
PROD_USER: deploy
|
||||
PROD_KEY:
|
||||
from_secret: prod_ssh_key
|
||||
DRONE_REGISTRY: your-docker-registry
|
||||
services:
|
||||
- name: docker
|
||||
image: docker:dind
|
||||
commands:
|
||||
- mkdir -p ~/.ssh
|
||||
- chmod 700 ~/.ssh
|
||||
- echo "${PROD_KEY}" > ~/.ssh/id_rsa
|
||||
- chmod 600 ~/.ssh/id_rsa
|
||||
- scp -r ./docker-compose.prod.yml ${PROD_USER}@${PROD_HOST}:~/docker-compose.yml
|
||||
- >
|
||||
ssh ${PROD_USER}@${PROD_HOST} << EOF
|
||||
docker login -u gitea-ci -p your-password ${DRONE_REGISTRY}
|
||||
docker pull ${DRONE_REGISTRY}/web:${DRONE_COMMIT_SHA}
|
||||
docker pull ${DRONE_REGISTRY}/api:${DRONE_COMMIT_SHA}
|
||||
docker-compose rm --force backend
|
||||
docker-compose rm --force frontend
|
||||
docker-compose up -d backend frontend
|
||||
EOF
|
||||
- docker login -u gitea-ci -p your-password ${DRONE_REGISTRY}
|
||||
- docker pull ${DRONE_REGISTRY}/web:${DRONE_COMMIT_SHA}
|
||||
- docker pull ${DRONE_REGISTRY}/api:${DRONE_COMMIT_SHA}
|
||||
- sed -i -e "s#COMPOSE_BACKEND_IMAGE=.*#COMPOSE_BACKEND_IMAGE=${DRONE_REGISTRY}/api:${DRONE_COMMIT_SHA}#" .env
|
||||
- sed -i -e "s#COMPOSE_FRONTEND_IMAGE=.*#COMPOSE_FRONTEND_IMAGE=${DRONE_REGISTRY}/web:${DRONE_COMMIT_SHA}#" .env
|
||||
- docker-compose rm --force backend frontend
|
||||
- docker-compose up -d backend frontend
|
||||
+26
-11
@@ -1,24 +1,39 @@
|
||||
FROM python:3.8
|
||||
|
||||
#Ustaw zmienne środowiskowe
|
||||
ENV PYTHONDONTWRITEBYTECODE 1
|
||||
ENV PYTHONUNBUFFERED 1
|
||||
|
||||
# Zainstaluj zależności systemowe
|
||||
RUN apt-get update && apt-get install -y nano && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
RUN mkdir -p /code && chown -R www-data:www-data /code
|
||||
RUN mkdir -p /var/www && chown -R www-data:www-data /var/www
|
||||
|
||||
USER www-data
|
||||
ENV PATH /var/www/.local/bin:${PATH}
|
||||
|
||||
# Ustaw katalog roboczy
|
||||
WORKDIR /code
|
||||
|
||||
# Tworzenie wirtualnego środowiska
|
||||
RUN python3 -m venv /code/venv
|
||||
|
||||
# Ustaw ścieżkę do wirtualnego środowiska
|
||||
ENV PATH="/code/venv/bin:$PATH"
|
||||
|
||||
# Skopiuj pliki `pyproject.toml` i `poetry.lock`
|
||||
COPY pyproject.toml poetry.lock /code/
|
||||
|
||||
RUN pip install --upgrade -U pip
|
||||
RUN pip install -U poetry
|
||||
# Instalacja narzędzi
|
||||
RUN pip install --upgrade pip setuptools wheel
|
||||
|
||||
|
||||
# Instalacja poetry i zależności aplikacji
|
||||
RUN pip install poetry
|
||||
RUN poetry config virtualenvs.create false --local
|
||||
RUN poetry install --no-dev --extras "production"
|
||||
RUN poetry install --only main --extras "production"
|
||||
|
||||
# Zmień właściciela plików na `www-data`
|
||||
RUN chown -R www-data:www-data /code
|
||||
|
||||
# Przejście na użytkownika `www-data`
|
||||
USER www-data
|
||||
|
||||
# Domyślny punkt wejścia
|
||||
CMD ["gunicorn", "--bind", "0.0.0.0:8000", "app.wsgi:application"]
|
||||
|
||||
COPY . /code/
|
||||
CMD exec gunicorn outbo.wsgi:application --access-logfile - --bind 0.0.0.0:8000 --workers 2
|
||||
+45
-28
@@ -1,65 +1,82 @@
|
||||
version: "3.2"
|
||||
services:
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
db:
|
||||
env_file:
|
||||
- .env
|
||||
image: postgres:11
|
||||
restart: unless-stopped
|
||||
env_file:
|
||||
- .env
|
||||
volumes:
|
||||
- ./db:/var/lib/postgresql/data
|
||||
networks:
|
||||
- internal-network
|
||||
|
||||
pgadmin:
|
||||
env_file:
|
||||
- .env
|
||||
image: dpage/pgadmin4
|
||||
volumes:
|
||||
- ./pgadmin:/var/lib/pgadmin
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- db
|
||||
networks:
|
||||
- internal-network
|
||||
# pgadmin:
|
||||
# image: dpage/pgadmin4
|
||||
# restart: unless-stopped
|
||||
# env_file:
|
||||
# - .env
|
||||
# depends_on:
|
||||
# - db
|
||||
# ports:
|
||||
# - "5050:80"
|
||||
# networks:
|
||||
# - internal-network
|
||||
|
||||
backend:
|
||||
build:
|
||||
context: ./evg-outbo-api
|
||||
dockerfile: api.Dockerfile
|
||||
image: outbo_backend:latest
|
||||
restart: unless-stopped
|
||||
env_file:
|
||||
- .env
|
||||
image: "${COMPOSE_BACKEND_IMAGE}"
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- db
|
||||
volumes:
|
||||
- ./evg-outbo-api:/code
|
||||
networks:
|
||||
- internal-network
|
||||
- external-network
|
||||
command: >
|
||||
bash -c "
|
||||
python manage.py migrate &&
|
||||
python manage.py collectstatic --noinput &&
|
||||
gunicorn --bind 0.0.0.0:8000 outbo.wsgi:application
|
||||
"
|
||||
|
||||
frontend:
|
||||
build:
|
||||
context: ./evg-outbo-web
|
||||
dockerfile: web.Dockerfile
|
||||
image: outbo_frontend:latest
|
||||
restart: unless-stopped
|
||||
env_file:
|
||||
- .env
|
||||
image: "${COMPOSE_FRONTEND_IMAGE}"
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- backend
|
||||
volumes:
|
||||
- ./evg-outbo-web:/usr/share/nginx/html
|
||||
ports:
|
||||
- "3000:3000"
|
||||
networks:
|
||||
- internal-network
|
||||
|
||||
server:
|
||||
env_file:
|
||||
- .env
|
||||
image: "abiosoft/caddy"
|
||||
image: abiosoft/caddy
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
volumes:
|
||||
- ./Caddyfile:/etc/Caddyfile
|
||||
- ./.caddy:/root/.caddy
|
||||
ports:
|
||||
- 80:80
|
||||
- 443:443
|
||||
- "80:80"
|
||||
- "443:443"
|
||||
networks:
|
||||
- internal-network
|
||||
- external-network
|
||||
|
||||
|
||||
networks:
|
||||
internal-network:
|
||||
internal: true
|
||||
external-network:
|
||||
driver: bridge
|
||||
external-network:
|
||||
external: true
|
||||
Executable
+39
@@ -0,0 +1,39 @@
|
||||
FROM python:3.8
|
||||
|
||||
#Ustaw zmienne środowiskowe
|
||||
ENV PYTHONDONTWRITEBYTECODE 1
|
||||
ENV PYTHONUNBUFFERED 1
|
||||
|
||||
# Zainstaluj zależności systemowe
|
||||
RUN apt-get update && apt-get install -y nano && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Ustaw katalog roboczy
|
||||
WORKDIR /code
|
||||
|
||||
# Tworzenie wirtualnego środowiska
|
||||
RUN python3 -m venv /code/venv
|
||||
|
||||
# Ustaw ścieżkę do wirtualnego środowiska
|
||||
ENV PATH="/code/venv/bin:$PATH"
|
||||
|
||||
# Skopiuj pliki `pyproject.toml` i `poetry.lock`
|
||||
COPY pyproject.toml poetry.lock /code/
|
||||
|
||||
# Instalacja narzędzi
|
||||
RUN pip install --upgrade pip setuptools wheel
|
||||
|
||||
|
||||
# Instalacja poetry i zależności aplikacji
|
||||
RUN pip install poetry
|
||||
RUN poetry config virtualenvs.create false --local
|
||||
RUN poetry install --only main --extras "production"
|
||||
|
||||
# Zmień właściciela plików na `www-data`
|
||||
RUN chown -R www-data:www-data /code
|
||||
|
||||
# Przejście na użytkownika `www-data`
|
||||
USER www-data
|
||||
|
||||
# Domyślny punkt wejścia
|
||||
CMD ["gunicorn", "--bind", "0.0.0.0:8000", "app.wsgi:application"]
|
||||
|
||||
Executable
+17
@@ -0,0 +1,17 @@
|
||||
FROM node:14 AS builder
|
||||
ARG outbo_env
|
||||
ARG backend_url
|
||||
WORKDIR /app
|
||||
COPY package.json yarn.lock /app/
|
||||
RUN yarn
|
||||
COPY . /app
|
||||
ENV NODE_ENV production
|
||||
ENV REACT_APP_OUTBO_ENV=${outbo_env}
|
||||
ENV REACT_APP_BACKEND_URL=${backend_url}
|
||||
RUN yarn run build
|
||||
|
||||
FROM node:14
|
||||
RUN yarn global add serve
|
||||
WORKDIR /app
|
||||
COPY --from=builder /app/build .
|
||||
CMD ["serve", "-p", "80", "-s", "."]
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
FROM node:erbium AS builder
|
||||
FROM node:14 AS builder
|
||||
ARG outbo_env
|
||||
ARG backend_url
|
||||
WORKDIR /app
|
||||
@@ -10,7 +10,7 @@ ENV REACT_APP_OUTBO_ENV=${outbo_env}
|
||||
ENV REACT_APP_BACKEND_URL=${backend_url}
|
||||
RUN yarn run build
|
||||
|
||||
FROM node:erbium
|
||||
FROM node:14
|
||||
RUN yarn global add serve
|
||||
WORKDIR /app
|
||||
COPY --from=builder /app/build .
|
||||
|
||||
Reference in new issue
Block a user