mirror of
https://bitbucket.org/atlassian-docker/docker-atlassian-confluence-server.git
synced 2024-08-30 18:22:16 +00:00
6d48710b4a
CLIP-1859: Migrate README to Helm chart docs * CLIP-1859: Migrated README to Helm chart docs. * CLIP-1859: Made -server repo deprecation message and reference to full readme to top. Approved-by: Eugene Ivantsov Approved-by: Minh Tran Approved-by: Adam Brokes
105 lines
4.0 KiB
Markdown
105 lines
4.0 KiB
Markdown
# Developing Docker images
|
|
|
|
## Setting up for development
|
|
|
|
After cloning the repository you will need to clone the submodule:
|
|
|
|
```
|
|
git submodule update --init --recursive
|
|
```
|
|
|
|
You should also add the local githooks, which include checks for the generated
|
|
Bitbucket Pipelines configuration. This can be done with:
|
|
|
|
```
|
|
git config core.hooksPath .githooks
|
|
```
|
|
|
|
## Testing
|
|
|
|
The repository contains a smoke-test suite run on branch/PR builds and as part
|
|
of the release process. It uses `docker-compose` to run the image in production
|
|
mode with predefined database, and then run a suite of basic tests. *NOTE*: The
|
|
tests are not intended to test every aspect of the product, but to ensure basic
|
|
functionality works to a degree that we can be confident that there are no
|
|
regressions. See [func-tests/smoketests/tests/](func-tests/smoketests/tests/) for the actual tests run.
|
|
|
|
The default database was generated with the default sample project, but has had
|
|
the license elided for security reasons. See below for how to inject it.
|
|
|
|
### Pre-requisites
|
|
|
|
To run the functional testing, you are required to define several variables.
|
|
|
|
```
|
|
# String with full Confluence DC license, don't forget the quotes as the license
|
|
can contain special characters that would render the license unusable
|
|
CONFLUENCE_TEST_LICENSE='license_string'
|
|
|
|
# The user and passwords used to access the product. These are stored in lastpass.
|
|
CONFLUENCE_ADMIN='xxx'
|
|
CONFLUENCE_ADMIN_PWD='xxx'
|
|
```
|
|
|
|
### Run the smoke test functional suite
|
|
|
|
This will build a local image based on the latest Confluence version and run the
|
|
func-tests against it:
|
|
|
|
```
|
|
export CONFLUENCE_VERSION=`curl -s https://marketplace.atlassian.com/rest/2/products/key/confluence/versions/latest | jq -r .name`
|
|
docker build --build-arg CONFLUENCE_VERSION=${CONFLUENCE_VERSION} -t confluence-test-image .
|
|
docker-compose build --build-arg TEST_TARGET_IMAGE=confluence-test-image ./func-tests/docker-compose.yaml
|
|
./func-tests/run-functests confluence-test-image
|
|
```
|
|
|
|
### Develop tests
|
|
|
|
Make sure CONFLUENCE_TEST_LICENSE, CONFLUENCE_ADMIN, and CONFLUENCE_ADMIN_PWD environment
|
|
variables already are set. Extract confluence home directory and inject the license:
|
|
|
|
```
|
|
cd func-tests
|
|
unzip -o confluence-home-6.0.1.zip -d confluence
|
|
TEST_TARGET_IMAGE='xxx' ./confluence/inject-license
|
|
```
|
|
|
|
Run the smoke tests
|
|
|
|
```
|
|
cd func-tests
|
|
TEST_TARGET_IMAGE='xxx' docker-compose up --force-recreate --always-recreate-deps --abort-on-container-exit --exit-code-from smoketests
|
|
```
|
|
|
|
## Documentation
|
|
|
|
Due to Docker Hub's description size limit (see [docker/hub-feedback#238][1] and [docker/roadmap#475][2]),
|
|
README has been hosted at the same doc as Helm charts.
|
|
|
|
If the change requires an update to README, please submit a PR to the [Helm charts][3] Github repository.
|
|
|
|
## Release process
|
|
|
|
Releases occur automatically; see [bitbucket-pipelines.yml](bitbucket-pipelines.yml).
|
|
Due to the large amount of images that are built and tested the pipelines file
|
|
is generated from a template that parallelises the builds. It includes a
|
|
self-check for out-of-date pipelines config. To avoid committing stale config it
|
|
is recommended you add the supplied pre-commit hook; see the setup section above.
|
|
|
|
It should be noted that a change to this repository will result in all published
|
|
images being regenerated with the latest version of the
|
|
[Dockerfile](Dockerfile). As part of the release process the following happens:
|
|
|
|
* A [Snyk](https://snyk.io) scan is run against the generated container image.
|
|
* The image dependencies are registered with Snyk for periodic scanning.
|
|
* The above func-test suite is run against the image.
|
|
|
|
This is all performed by the
|
|
[docker-release-maker](https://bitbucket.org/atlassian-docker/docker-release-maker/)
|
|
tool/image. See the
|
|
[README](https://bitbucket.org/atlassian-docker/docker-release-maker/src/master/README.md)
|
|
in that repository for more information.
|
|
|
|
[1]: https://github.com/docker/hub-feedback/issues/238
|
|
[2]: https://github.com/docker/roadmap/issues/475
|
|
[3]: https://github.com/atlassian/data-center-helm-charts/tree/main/docs/docs |