I’ve been working away for weeks now on my project demo - as part of it I bought a jekyll site template which comes with it’s own dockerfile - I can’t be bothered maintaining both a dockerfild and the circle ci yaml separately. Can anyone recommend a way to just keep using the dockerfile and a Makefile?
Sure, if you can tell us what your CircleCI config and your Dockerfile do. Would you post them here?
You will always need a minimal CircleCI config, but you can certainly do a Docker build inside your build server.
Thanks @halfer - it’s really basic - just builds/serves a jekyll site - currently hosted on github but I’d like to play with deploying it to kubernetes.
FROM alpine:latest
# Set default locale for the environment
ENV LC_ALL C.UTF-8
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US.UTF-8
RUN apk add ruby-bundler ruby-dev
# throw errors if Gemfile has been modified since Gemfile.lock
#RUN bundle config --global frozen 1
WORKDIR /usr/src/app
COPY Gemfile Gemfile.lock jekyll-mergefailure-theme.gemspec ./
RUN apk add make gcc dev86
RUN apk add build-base
RUN apk add zlib
#RUN apk add libxml2 libxslt musl ruby ruby-libs ruby-mini_portile2
RUN apk add ruby-nokogiri ruby-json
RUN bundle install
EXPOSE 4000
CMD ["bundle", "exec", "jekyll", "help"]
```
@halfer - I haven’t even approached the circleci config yet - I just saw a sea of yaml and couldn’t figure out from the docs how I could get it to use the Dockerfile.
It’s just using Docker pretty much as you would locally - pull the repo, install Docker, do a docker build
, then do a docker run
if required. Here is an example:
Ah, understood - docker in docker. Thanks for the pointer @halfer, much appreciated.
Yep, and you’re welcome. The CircleCI config then is just a question of keeping up to date with Docker/Compose, and otherwise does not really need to change.