<p>I had this problem when I needed to build something at home.</p>

<p>What I did:</p>

<ul>
<li>installed docker in a Ubuntu server VM</li>
<li>installed docker in a windows server 2016 VM (if you need windows containers like i did)</li>
</ul>

<p>THEN: 
In the Ubuntu machine:</p>

<ul>
<li>I created a local registry running in a container (1 command :)  )</li>
<li>I spin up a container with a git server - I "linked" the configuration folder to a folder in my machine for persistence.  </li>
<li>I spinn a container with jenkins server (same trick with the folder)</li>
<li>I spin up containers with slaves</li>
<li>I have a database container attached to a nexus container for artifacts and build dependencies</li>
</ul>

<p>In windows VM : </p>

<ul>
<li>I spin a jenkins slave container to build windows apps </li>
<li>I spin IIS machines to test the built app</li>
</ul>

<p>My home computer is 32 GB ram / core i7 and it works great , even with windows container databases (these are monstrous) </p>

<p>Tricky for me - work in progress - build a container in a slave running in a container . It can be done but I am on googling phase.</p>

<p>Advantages:</p>

<ul>
<li>if you use docker compose and you save your containers in the local registry you get to move your work easily . I always version my docker compose files in a github repo.</li>
<li>you can pause the VM host and move everything in some other host. </li>
<li>you can branch your things for having a test env by cloning the machine and copying the host folders</li>
</ul>

CC BY-SA 4.0
2019-10-06T18:42:03.413Z
I've made a Jenkins slave container which automatically register itself to a master, maybe this can be of use. https://github.com/papanito/jenkins-jnlp-slave. Still need to update the readme...
papanito
CC BY-SA 4.0
2019-10-02T14:00:03.703Z
2019-10-02T14:00:03.703Z
TudorIftimie
<p>There is no hard rule to have jenkins to be running of a single server. However usually it may be better to have separate servers which fulfilling one purpose at a time as this gives some advantages</p>

<ul>
<li>you can focus only on dependencies for the particular service (e.g. Bitbucket and jenkins may require two different Java versions, whereas one installation could interfere with other)</li>
<li>if you have all services on one server, for whatever reason the servers is not available - <strong>none</strong> of your services are available neither</li>
</ul>

<p>There are a bunch of tools you can use i.e. not only Jenkins. I recommend to write down your needs/requirements and evaluate different options. </p>

CC BY-SA 4.0
2019-10-01T11:07:52.423Z
My needs is pretty basic, I just need a way to allow my remote developers to push to the repo and for the repo's changes to be then reflected on an external server so a bitbucket pipeline of some sort and then some way to get the code over to the server and into the right directory
Kravitz
CC BY-SA 4.0
2019-10-01T10:51:01.300Z
2019-10-01T10:51:01.300Z
papanito
<p>I want to improve my current dev CI workflow, I would like to create a server with ISPConfig and some kind of CI tool like Jenkins</p>

<p>The catch is It has to all sit on 1 server, I see folks saying jenkins needs its own server but im just wondering is that a hard set rule or what.</p>

<p>Or has anyone got any tips on other tools to use which would work better with bitbucket or bitbucket pipelines?</p>

<p>My current setup has been a maze of bash scripts which get triggered when a dev pushes to the master branch but it's not very convenient for updates or adding new sites etc so id love to hear what other people are using to simplify the process of pushing to staging/dev .</p>

<jenkins><build-pipeline><bitbucket>
Dev-Ops with bitbucket
Kravitz
# Dev-Ops with bitbucket

(Asked by: username_0 on 2019-10-01)

I want to improve my current dev CI workflow, I would like to create a server with ISPConfig and some kind of CI tool like Jenkins

The catch is It has to all sit on 1 server, I see folks saying jenkins needs its own server but im just wondering is that a hard set rule or what.

Or has anyone got any tips on other tools to use which would work better with bitbucket or bitbucket pipelines?

My current setup has been a maze of bash scripts which get triggered when a dev pushes to the master branch but it's not very convenient for updates or adding new sites etc so id love to hear what other people are using to simplify the process of pushing to staging/dev .

**Tags:** jenkins, build-pipeline, bitbucket


---

## 2 answers

### Answer by username_1 on 2019-10-02. Score: 1

I had this problem when I needed to build something at home.

What I did:

* installed docker in a Ubuntu server VM
* installed docker in a windows server 2016 VM (if you need windows containers like i did)

THEN:
In the Ubuntu machine:

* I created a local registry running in a container (1 command :) )
* I spin up a container with a git server - I "linked" the configuration folder to a folder in my machine for persistence.
* I spinn a container with jenkins server (same trick with the folder)
* I spin up containers with slaves
* I have a database container attached to a nexus container for artifacts and build dependencies

In windows VM :

* I spin a jenkins slave container to build windows apps
* I spin IIS machines to test the built app

My home computer is 32 GB ram / core i7 and it works great , even with windows container databases (these are monstrous)

Tricky for me - work in progress - build a container in a slave running in a container . It can be done but I am on googling phase.

Advantages:

* if you use docker compose and you save your containers in the local registry you get to move your work easily . I always version my docker compose files in a github repo.
* you can pause the VM host and move everything in some other host.
* you can branch your things for having a test env by cloning the machine and copying the host folders

> **Comments:**
> **username_2**: I've made a Jenkins slave container which automatically register itself to a master, maybe this can be of use. https://github.com/username_2/jenkins-jnlp-slave. Still need to update the readme...  

---

### Answer by username_2 on 2019-10-01. Score: 0

There is no hard rule to have jenkins to be running of a single server. However usually it may be better to have separate servers which fulfilling one purpose at a time as this gives some advantages

* you can focus only on dependencies for the particular service (e.g. Bitbucket and jenkins may require two different Java versions, whereas one installation could interfere with other)
* if you have all services on one server, for whatever reason the servers is not available - **none** of your services are available neither

There are a bunch of tools you can use i.e. not only Jenkins. I recommend to write down your needs/requirements and evaluate different options.

> **Comments:**
> **username_0**: My needs is pretty basic, I just need a way to allow my remote developers to push to the repo and for the repo's changes to be then reflected on an external server so a bitbucket pipeline of some sort and then some way to get the code over to the server and into the right directory  

---

