Ну, я полагаю, понял.Использование выполнения команд в .gitlab-ci.yml работает так, как мне нужно:
deploy:
stage: deploy
script:
- mvn clean package docker:build docker:start docker:push
Кроме того, я прокомментировал некоторые теги в pom.xml, поэтому мой раздел сборки теперь выглядит так:
<build>
<!-- <dockerFileDir>${project.basedir}/src/main/docker</dockerFileDir>
<dockerFile>Dockerfile</dockerFile> -->
<assembly>
<descriptorRef>artifact</descriptorRef>
<mode>dir</mode>
<targetDir>/opt/demo/</targetDir>
<!-- <files>
<file>
<source>${project.build.directory}/313test.war</source>
<source>target/313test.war</source>
<outputDirectory>./</outputDirectory>
<destName>testapp.jar</destName>
</file>
</files> -->
</assembly>
</build>
Итак, при запуске ls в секции run файла pom.xml файл WAR отображается в каталоге / opt / demo внутри встроенного образа докера
<run>
<cmd>ls -l /opt/demo/</cmd>
<wait>
<time>10000</time>
</wait>
</run>
Спасибо всем)