At the time of writing, I’m now 11 days into my journey into Docker-ising my workflow.
The idea here is to build a continious integration / continuous delivery pipeline. It sounds horrendously enterprise, but in reality it’s all about removing the friction involved in getting working code into production as easily as possible.
As a quick re-cap, what I’m trying to achieve is roughly:
- Develop locally using Docker;
- Commit code, and push up to GitLab;
- For each commit, GitLab will perform a checkout of my code, build up the environment (using Docker), and run my automated test suite;
- If the tests pass, then the Docker image should be stored into my private GitLab Container Registry (or to you and me, store the Docker image on my private GitLab server, rather than publicly e.g. on dockerhub);
- Assuming I am happy with everything, I can then pull this image to my production environment and replace the running container with the new one.
For this last step I’m looking at using Rancher.
Honestly, even just writing that out makes it sound tricky.
In practice, it’s been… a bloomin’ nightmare.
As I say, I’m 11 days into this. 11 days that is, without writing any code on the project that actually matters.
I genuinely believe this entire process will be worth it. Once it all works – and believe me, I will make this work even if it dangerously shortens my life expectancy – then I can roll this out not just to my current project, but to every project. And not just projects that use PHP either.
And that’s a huge win for me. That’s why I’m persisting with it.
I asked last week if anyone had any experience with this. Somewhat unsurprisingly, I got zero replies 🙂
Now, this may be because no one reads what I write. It’s highly probable. However, MailChimp gives me stats and the stats say that at least some of you do read these emails 🙂 Thanks!
Anyway, my take away from this is that if no one replied, either it’s because no one has experience doing this (and judging by how much pain I’m going through, I don’t blame you), or maybe it’s just not interesting to you.
I’d be up for doing a series on this for CodeReviewVideos once I have a working setup. It should shave a ton of time of the process if you are interested, but don’t have the time / desire to invest 11+ days of your life into a similar setup.
I would be extremely grateful if you could reply and let me know if this is a video tutorial series that would interest you.
I hope that in next week’s email I can say that I have a working solution.
This week there have been three new videos added to the site.
I’m not going to link to each of the individual videos in this instance, but rather only to the first as they follow on logically from each other:
In this final part of the “React, Redux, and Redux Saga With Symfony 3” we wrap up by adding in Registration.
Previously when dealing with registration I have felt a little overwhelmed. From a very high level, it’s a form like any other.
But in reality it’s one of the most important forms on your site. It’s a core piece of the first impression a (potential) customer will have. You need to get it right.
Fortunately though, we’ve already done the vast majority of the hard work.
We have a set of re-usable components we can call upon, such as the repeated password entry field, and our styled form field.
We have a set process to follow, where we create a container, then a component to hold our form. We create our functions and pass them in, which will dispatch the right messages when interesting things happen. It’s all stuff we’ve covered throughout this series.
Finally we cover how to work with both the happy path, and the unhappy paths. We cover how to display helpful form errors to guide the user through as and when things go wrong.
And at the end of all this we have a working registration system that’s useful regardless of the type of app you’re creating. Without too much extra effort this system can be expanded upon to add in a payment processor – such as Stripe. I know, as this is exactly the same setup that’s being used in the forthcoming update of CodeReviewVideos 🙂
This week I blogged about getting RabbitMQ working with Docker:
That’s it from me this week. Until next week, happy coding 🙂