(Docker) Services in GitLab CI

I’ve been playing around with GitLab CI and so far I am very pleased with the overall concepts.

Yet, I keep wondering what would be the best approach to test the following:

(1) Build and unit-test a web project for example written in Java
(2) Deploy that project to a web-container, e.g. Tomcat
(3) End-to-end test the application

So far I am happy with (1) but I am not yet sure how to best handle (2) and especially (3).

What I’d like to do:
add a service: directive to my .gitlab-ci.yml but instead of having this service accessible only via network it would be great to be able to mount my build artifact inside that service container and run the e2e-tests against that service afterwards.

Maybe rsyncing via ssh into my service container would make the deal or are there other possibilities?