Rather than messing with crond, I strongly suggest to implement some (even simple) form of locking inside your build scripts. For example, touch and check for a file in /var/run/: if your script find something, than another process is building the project. You obviously need to remove the lockfile when finished.
As @GnP noted in the comments, you can also ...
I wrote a small webapp some time ago which has a system dependency which is only available for unix systems so docker was the natural choice (although i had quite some success with vagrant ..)
I am using windows for development and also running this webapp in its docker container.
So I came across the same issue, "how to start this at system boot"?
In case anyone else stumbles on this, Team City has a Deployer plugin which supports moving artifacts to a Samba share, FTP server or SSH server: http://confluence.jetbrains.com/display/TW/Deployer+plugin
Just a small addon: When you start your docker images and want them to start at boot of docker (in this case the virtualmachine running docker) you can use the --restart always option in the docker run command. Then you can remove the docker run command from your batch files. The container should start automatically after the vm started.
What you're looking for is a configuration management system - Puppet or Chef are the big ones these days.
They'll let you define a "base" configuration with all of your boilerplate hardening steps, services, and configurations, as well as defining configurations to go beyond the baseline with specific applications and services assigned (then automatically ...
I just had the same problem. What I did was:
On the master change to root user: su root
Execute: passwd jenkins
Specify a password for the jenkins user
Change to the jenkins user (and supply password from step 3): su jenkins
That solved the problem for me. I could not do sudo passwd jenkins, I had to change to the root user. You might also ...
I have extended Charlie Carver's answer.
With following script you can specify which boot2docker machine launch. Since Docker Toolbox folder may not be in your path and all the proper environmental variables may not be set, I wrote some initialization instructions.
Put this script in a bat file and use one of the options cited by Charlie to make it run at ...
Many of the places I've worked in the past use VMware templates or imaging. The nice thing about imaging is setting up your server once and then deploying it to multiple machines.
Windows Deployment Services does support server OSes for imaging, and is free to use with your licensed copy of Windows Server. You will need volume licenses to go with that as ...
To the answer of Michael Dillon i can add that you can create ext4 filesystem with few options :
mkfs.ext4 -O dir_index,extent -i 8096 /dev/<disk>
Use hashed b-trees to speed up lookups in large directories.
Instead of using the indirect block scheme for storing the location of data blocks in an inode, use extents instead. ...
Assuming I understand your question correctly, you're going to need 2 services.
web proxy (I recommend using nginx / HA-Proxy for this).
ssh proxy service is achieved through the use of SSH keys and the command="" directive, you have the key auth into your proxy server with /bin/false as the shell, then define the command="ssh user@real-server" ...
Did we mess up any settings to get such horrible slowdown for the C++
Probably not, VMWare Workstation wasn't the right tool for the job.
Should we have tested ESX(i)(?) instead of Workstation?
Yes, it'll be better than Workstation, still slower than bare-metal but much better.
Should we expect anything else from MS Hyper-V? (Because our IT ...
Building a server is a very broad task - the list of stuff to check/consider will vary widely based on the server's intended role.
What follows are some guidelines. They are by no means a complete checklist. Your environment WILL vary, and local deviations, additions, and removals will be necessary.
Let's start at the beginning - When you're ...
Our build server performance was increased by increasing the disk subsystem performance.
We now run 4 fast SSD's in hardware RAID 10.
To confirm disk is your performance bottle neck watch the disk subsystem IO compared to your theoretical and look at the latency because when the latency is constantly high you have a problem.
In Windows you can use Perfmon ...
Of course. You can achieve most of GUI operations through Powershell either in ConfigMgr. Just download the ConfigMgr Powershell module here.
After installing the powershell module, you can simply connect the ConfigMgr site server via Powershell and find out your desired cmdlet like below:
You can also find the online CmdLet reference here.
You could also use NSSM (Non-Sucking Service Manager)
Launch NSSM from a command promt or powershell windows with the install param (nssm.exe install)
This will launch GUI, eneter the following detials;
Path: [Docker Install DIR]\Docker\resources\bin\docker-compose.exe
Startup Directory: [Path to your docker container]
Arguments: any arguments you need ...
I have few reputations to comment on your question, so my answer has some questions as well.
I tried creating the same setup as yours but minified (based on your explanation above) and it seems to have improvements with the docker's own caching mechanisms
My example Dockerfile looks like this:
RUN apt-get update \
I have to pass Gradle the location of secring.gpg so it can sign the
JARs, but I'm not sure where to put it.
Are there any conventions or best practices regarding this?
The only thing close to a "standard" in this regard would be to put your keyring in a dotfolder within the home directory of whatever user needs access to it.
Ensure that permissions ...
The answer to your question can be generalized to just about any situation:
Start collecting metrics (RAM, IO, CPU, network, etc.)
Apply load to system
Analyze metrics to identify bottlenecks
The main tools for this on Windows are WDS and MDT.
If you have SCCM (which is not free) then the functionality of these two products, plus others, are rolled in. If you have a large number of servers, you should be deploying a base OS using SCCM or WDS and then using a configuration management tool like SCCM to push apps and config to each.
Network Addresses. This includes knowing the external IPs, the internal numbering scheme, DHCP ranges, special addresses, what provides the addresses. If you have a router taking care of the DHCP and DNS, then you just need to know the extra information. Most internal networks use a 192.168.x.x or 10.x.x.x range, with .1 or .254 for the default ...
I can only answer last part,
IF you are going to use [ONLY] windows for virtualized guests , then HyperV will be best VM Option available for you due to high performance virtualization for windows OS.
Same applies to XEN for Linux OS virtualization.
If I understand correctly, you created a KVM virtual machine on a physical server, and gave root access to the virtual machine to users?
Is the physical server in your your company premises or off site in a Datacenter?
If it is fully under your control, you can use KVM bridged networking to give each KVM a dedicated IP. Configuring bridges depends on the ...
what you want is a so called Reverse Proxy. This is a Proxy which works by getting all traffic on the one IP you have, parsing the Host Header and doing the request for the external clients.
Link to HowTo: http://www.apachetutor.org/admin/reverseproxies
This way you only have to add normal VirtualHosts to your Reverse Proxys configuration and configure ...
It's not really that complicated...you ask your provider for a business class connection with multiple IP's.
Otherwise you'd have to give them different hostnames and you'd deliver guests to their site through virtualhost directives rather than VMs.
Or you could try creating a VM that somehow redirects to internal sites through parsing the incoming request ...
You could setup an SSH tunnel to route a local port to 8080 on the remote side. I'm afraid I don't use Linux at home enough to explain the process there, but via PuTTY:
Choose the connection
On the left, go to connections -> SSH -> tunnels
Tick "local ports accept connections from other hosts" and "remote ports do the same"
Add source port 8080 and remote ...
It will be available at the external IP address of the EC2 instance, which you can find for example in the AWS web interface. You might also have to configure a security group to allow access to port 8080 and add that instance to that security group.