Skip to content
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

Official Alpine Linux (AMD64) docker images - Testing #2425

Closed
GaryAllan opened this issue Feb 6, 2019 · 7 comments
Closed

Official Alpine Linux (AMD64) docker images - Testing #2425

GaryAllan opened this issue Feb 6, 2019 · 7 comments

Comments

@GaryAllan
Copy link
Collaborator

GaryAllan commented Feb 6, 2019

I've registered phpipam as a Docker Hub organisation (https://hub.docker.com/u/phpipam) and published containers for 1.3.2rev003 and current master. Access to the organisation can be shared but hopefully everything can be automated.

Dockerfile is based on #1944 & #829

The container expect an externally hosted MySQL database can be configured via the following environment variables:

    ENV IPAM_DATABASE_HOST "localhost"    // MySQL server IP/DNS name
    ENV IPAM_DATABASE_USER "phpipam"      // MySQL username
    ENV IPAM_DATABASE_PASS "phpipamadmin" // MySQL password
    ENV IPAM_DATABASE_NAME "phpipam"      // MySQL database name
    ENV IPAM_DATABASE_PORT 3306           // MySQL TCP port
    ENV IPAM_GMAPS_API_KEY ""             // Google Maps API key

Known outstanding issues:

  • Missing scheduled discovery/ping cron jobs

Please assist with testing

@zombah
Copy link
Contributor

zombah commented Feb 6, 2019

Cool! I think official docker-compose.yaml with phpipam, mysql and nginx with common predifined settings would be also good addition to simplify phpipam docker unboxing expirience 8)

@GaryAllan
Copy link
Collaborator Author

Work-in-progress...

docker-compose.yml

version: '2'

services:
  phpipam-web:
    image: phpipam/phpipam-www:nightly
    ports:
      - "80:80"
    environment:
      - IPAM_DATABASE_HOST=phpipam-mariadb
      - IPAM_DATABASE_PASS=change_me_phpipam_db_password
      - IPAM_GMAPS_API_KEY=""
      - IPAM_DATABASE_WEBHOST=%
    restart: always
    volumes:
      - phpipam-logo:/phpipam/css/images/logo
    depends_on:
      - phpipam-mariadb

  phpipam-cron:
    image: phpipam/phpipam-cron:nightly
    environment:
      - IPAM_DATABASE_HOST=phpipam-mariadb
      - IPAM_DATABASE_PASS=change_me_phpipam_db_password
    restart: always
    depends_on:
      - phpipam-mariadb

  phpipam-mariadb:
    image: mariadb:latest
    environment:
      - MYSQL_ROOT_PASSWORD=change_me_mysql_root_password
    restart: always
    volumes:
      - phpipam-db-data:/var/lib/mysql

volumes:
  phpipam-db-data:
  phpipam-logo:

sudo docker-compose -p ipam up -d --force-recreate

@zombah
Copy link
Contributor

zombah commented Mar 24, 2019

Adding proxy support maybe something like this, if all containers in one docker network:

  nginx:
    image: nginx
    container_name: nginx
    restart: always
    networks:
      - phpipam-tier
    depends_on:
      - phpipam-web
    ports:
      - 80:80
      - 443:443
    volumes:
      - ./nginx/ssl:/etc/nginx/ssl/:ro
      - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro

but this will require to change phpipam-web ports var and place predefined config into ./nginx/nginx.conf

@GaryAllan
Copy link
Collaborator Author

Hello,

I think I've covered the common phpIPAM usage cases including proxy & discovery scanning..
SSL isn't supported natively. This can be done with existing NGINX reverse proxy docker images.

https://hub.docker.com/u/phpipam please test

Supported env

  • TZ Time Zone e.g Europe/London (Default: UTC)
  • IPAM_DATABASE_HOST MySQL database host (Default: 127.0.0.1)
  • IPAM_DATABASE_USER MySQL database user (Default: phpipam)
  • IPAM_DATABASE_PASS MySQL database password (Default: phpipamadmin)
  • IPAM_DATABASE_NAME MySQL database name (Default: phpipam)
  • IPAM_DATABASE_PORT MySQL database port (Default: 3306)
  • IPAM_DATABASE_WEBHOST MySQL allowed hosts (Default: localhost)
  • IPAM_GMAPS_API_KEY Google Maps and Geocode API Key (Default: "")
  • PROXY_ENABLED Use proxy (Default: false)
  • PROXY_SERVER Proxy server (Default: myproxy.something.com)
  • PROXY_PORT Proxy port (Default: 8080)
  • PROXY_USE_AUTH Proxy authentication (Default: false)
  • PROXY_USER Proxy username (default: USERNAME)
  • PROXY_PASS Proxy password (default: PASSWORD)
  • SCAN_INTERVAL Network discovery job interval = 5m,10m,15m,30m,1h,2h,4h,6h,12h (default: 1h) [CRON Container only]

Example full stack deployment via docker-compose.

Save and edit the the below configuration as docker-compose.yml and run docker-compose -p phpIPAM up -d from the same directory.

# WARNING: Replace the example passwords with secure secrets.
# WARNING: 'my_secret_phpipam_pass' and 'my_secret_mysql_root_pass'

version: '3'

services:
  phpipam-web:
    image: phpipam/phpipam-www:nightly
    ports:
      - "80:80"
    environment:
      - TZ=Europe/London
      - IPAM_DATABASE_HOST=phpipam-mariadb
      - IPAM_DATABASE_PASS=my_secret_phpipam_pass
      - IPAM_DATABASE_WEBHOST=%
      - PROXY_ENABLED=1
      - PROXY_SERVER=internal.proxy.url
      - PROXY_PORT=3128
      - PROXY_USE_AUTH=1
      - PROXY_USER=proxyuser
      - PROXY_PASS=proxypass
    restart: unless-stopped
    volumes:
      - phpipam-logo:/phpipam/css/images/logo
    depends_on:
      - phpipam-mariadb

  phpipam-cron:
    image: phpipam/phpipam-cron:nightly
    environment:
      - TZ=Europe/London
      - IPAM_DATABASE_HOST=phpipam-mariadb
      - IPAM_DATABASE_PASS=my_secret_phpipam_pass
      - SCAN_INTERVAL=1h
    restart: unless-stopped
    depends_on:
      - phpipam-mariadb

  phpipam-mariadb:
    image: mariadb:latest
    environment:
      - MYSQL_ROOT_PASSWORD=my_secret_mysql_root_pass
    restart: unless-stopped
    volumes:
      - phpipam-db-data:/var/lib/mysql

volumes:
  phpipam-db-data:
  phpipam-logo:

@GaryAllan
Copy link
Collaborator Author

Hello,

I've also uploaded 1.4 docker images.

@ChessSpider
Copy link

Can you publish the Dockerfiles?

@GaryAllan
Copy link
Collaborator Author

@ChessSpider
https://hub.docker.com/u/phpipam images are built from https://github.com/phpipam-docker/phpipam-docker/

I'll upload the build scripts when I've had chance to clean them up.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants