project-satisfy / satisfy

Satis composer repository manager with a Web UI

Home Page:http://ludofleury.github.io/satisfy/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Feature Request: Published Docker Image

DellanX opened this issue · comments

Short Story

As the only person in my team who does backend development, this package is amazing.
I can easily manage all of the local components we make (stored in git). While it looks like docker containers and images already exist, they aren't published.

What can I do to help get that underway?

Long Story

Unfortunately... I'm the only person who does backend development in my team.
This means that our team often suffers the "it works on my machine" problem.

With all the debugging I have to do on everyone's machines, it'd be nice to quickly launch up a satisfy container and see what is going on when repositories aren't available.
(Currently, we just have a script that runs satis via docker)

I've seen this be brought up a few times here:
#44, #84, #177
I realize that there has been some efforts here, though they aren't documented.

The Request

Mostly what I am asking for is the image to be published, and some documentation.
Both of which I am willing to assist with (though I can't publish an image on your behalf).

If an image can't be published, then is there any concerns with me adding a docker build section to the README.md?

Hi @DellanX , it would be nice to review Your proposal how to build image. Can You submit a PR? Very likely I will follow it to build real image.

I think it'd just be one of the following:

  1. A PHP/Ubuntu/Alpine based docker image that can be inserted into another docker-compose easily.
    This would be just like adding phpmyadmin or similar to a docker-compose file.
  2. Adding a stage to the current docker image that runs the composer install command behind the scenes.
    This option would require the consuming developer to use something such as a nginx instance to handle the trafic, as your current docker-compose is setup.

Ideally we can go with route (1). I'll tinker around with it, and submit a PR. The furthermost ideal would be to have a multi-stage dockerfile that defaults to (2) for a creates first a small image, but also (1) for developers who don't have a nginx instance.

classDiagram
class Developer1DockerContainer {
devImageA
devImageB
satis
}
class Developer2DockerContainer {
devImageA
devImageB
nginx
satis
}
services:
  satis:
    image: satisfy/satisfy # OR stasify/lite for developers who have a NGINX service
    networks:
      - developmentNetwork
    environment:
      APP_ENV: ${APP_ENV:-dev}
      APP_DEBUG: ${APP_DEBUG:-1}
      APP_PATH: /var/www/satisfy
    volumes:
      - .:/var/www/satisfy
      - /var/www/.composer
    restart: always
    ports:
      - "${APP_PORT:-8000}:80"

I'll look into making above, may take me a few weeks as I have a lot going on at the moment.

Hi @DellanX , can You check PR #190
I hope this is something we can start on.

First precompiled docker image released.