This is fairly typical behavior and works well for installing the server on a bare metal machine, but nowadays it is often desirable to isolate all of your services from each other. You can configure a data directory, but its database is initialized from where the start command is run instead of in a dedicated location and all non-volume files in a Docker container are ephemeral. It also places files all over the system. That doesn’t translate well to Docker, where a “system” only exists to do one thing and its lifecycle is managed automatically. It assumes that it is going to be a daemon, managed manually by CLI interactions or an admin interface. Perforce makes a lot of assumptions about how it’s going to be run. That aside, let’s dig into it! The problems with Perforce ⌗ Update 22 - Marc Wilson from PCWDLD sent me an email with a Linux commandline cheatsheet that should be useful for people that want a quicker way to get some shell literacy. That’s where I learned basic terminal literacy, and you can go through everything you need to know in the span of a few hours. If you want to learn, I highly recommend going to. If you’re not, you probably shouldn’t be trying to administer systems and should consult with someone that does. We’ll also assume that you’re familiar with very basic command line navigation. This is normally the part where I would put simple instructions on how to do that, but Docker is reorganizing its packages and install processes and my instructions would be quickly outdated. Prerequisites ⌗įor this tutorial we’re going to assume that you have installed docker and docker-compose and have the docker daemon running on your machine. I’ll spare the gory details of this, but storing a frequently edited video file (such as a cutscene or animation for a video game) makes git very unhappy. One thing git doesn’t do well is handle large binary files. That statement is almost purely backed by my opinion, but git is the most popular version control system for a reason. Other version control systems you may be familiar with are git, subversion (or svn for short), and mercurial (or hg for short).įor most workloads, you’d want to choose git. It handles large files, binary files, and locks on those files better than most other version control systems. Perforce is a version control system geared towards game developers. We’ll be using the industry standard docker-compose container orchestrator for this, but a similar configuration can be shipped to Docker Swarm and Kubernetes.Īs this is targetted at people that probably aren’t running large scale clustering software, we’re going to stick with docker-compose and focus on a single server. By the end of this, you’ll have your own Perforce server running comfortably on your own infrastructure. It leaves files all over the system, there’s no real option to constrain it to a specific area, and it makes some assumptions about how you want your system to be run that don’t really translate to a containerized environment very well.įortunately, because Docker is magic, we can remedy most of these things. There’s actually a pretty good reason for that - Perforce is messy. There’s not many Perforce docker images out there, and I haven’t found any that are maintained and well documented.
0 Comments
Leave a Reply. |