0

I have VM with docker containers in a cloud. It have 2 containers: wireguard and redmine. I have LDAP-authorization in redmine. LDAP-server locates in private LAN (behind NAT), and I have VPN via wireguard to this LAN. I need add route in Redmine-container so that redmine has access to a private LAN via Wireguard-container. Now I make it by hand after containers start I write docker-compose exec redmine ip route add 192.168.42.0/23 via 172.20.0.50

Could you advice me, how implement it to my pipeline?

P.S. redmine-container already has entrypoint and cmd directives in Dockerfile.

version: '3.9'

services:
  wireguard:
    image: linuxserver/wireguard
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    volumes:
      - ./wireguard-config:/config
      - /lib/modules:/lib/modules
    networks:
      default:
        ipv4_address: 172.20.0.50
    sysctls:
      - net.ipv4.conf.all.src_valid_mark=1 # for clients mode
    restart: unless-stopped

  postgres:
    image: postgres:14.2-alpine
    volumes:
      - postgres-data:/var/lib/postgresql/data
    environment:
      - 'POSTGRES_PASSWORD=MySUperSecret'
      - 'POSTGRES_DB=redmine'

  redmine:
    image: redmine:5.0.1-alpine
    cap_add:
      - NET_ADMIN
    volumes:
      - redmine-files:/usr/src/redmine/files
      - ./redmine-plugins:/usr/src/redmine/plugins
      - ./configuration.yml:/usr/src/redmine/config/configuration.yml
    ports:
      - 80:3000
    depends_on:
      - postgres
    environment:
      - 'REDMINE_DB_POSTGRES=postgres'
      - 'REDMINE_DB_DATABASE=redmine'
      - 'REDMINE_DB_PASSWORD=MySUperSecret'
      - 'REDMINE_PLUGINS_MIGRATE=true'
    restart: unless-stopped

networks:
  default:
    ipam:
      config:
        - subnet: 172.20.0.0/24

volumes:
  postgres-data:
  redmine-files:
Bazulenkov
  • 11
  • 6

1 Answers1

1

I solve my problem:

services:
  wireguard:
    image: linuxserver/wireguard
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    ports:
      - 3000:3000
    environment:
      - TZ=Europe/Moscow
    volumes:
      - ./wireguard-config:/config
      - /lib/modules:/lib/modules
    sysctls:
      - net.ipv4.conf.all.src_valid_mark=1 # for clients mode
    restart: unless-stopped

  postgres:
    image: postgres:14.2-alpine
    volumes:
      - postgres-data:/var/lib/postgresql/data
    environment:
      - 'POSTGRES_PASSWORD=MySUperSecret'
      - 'POSTGRES_DB=redmine'

  redmine:
    image: redmine:5.0.2-alpine
    network_mode: service:wireguard
    volumes:
      - redmine-files:/usr/src/redmine/files
      - ./redmine-plugins:/usr/src/redmine/plugins
      - ./configuration.yml:/usr/src/redmine/config/configuration.yml
    # ports:
    #   - 80:3000
    depends_on:
      - postgres
    environment:
      - 'REDMINE_DB_POSTGRES=postgres'
      - 'REDMINE_DB_DATABASE=redmine'
      - 'REDMINE_DB_PASSWORD=MySUperSecret'
      - 'REDMINE_PLUGINS_MIGRATE=true'
    restart: unless-stopped

volumes:
  postgres-data:
  redmine-files:
Bazulenkov
  • 11
  • 6