mirror of
				https://github.com/zulip/zulip.git
				synced 2025-10-31 20:13:46 +00:00 
			
		
		
		
	This is multi-stage build which first builds tsearch-extras with the current version of postgres and then configs postgres for zulip. The zulip config installs the hunspell dictionaries, stop words file, tsearch-extras, and creates the initial database. **Testing Plan:** 1) `docker-compose up` the existing config. 2) Build the new image 3) Edit docker-compose.yml to use the new image id 4) `docker-compose up` and verify full text search is still working.
		
			
				
	
	
		
			38 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| # To build run `docker build -f Dockerfile-postgresql .` from the root of the
 | |
| # zulip repo.
 | |
| 
 | |
| # Install build tools and build tsearch_extras for the current postgres
 | |
| # version. Currently the postgres images do not support automatic upgrading of
 | |
| # the on-disk data in volumes. So the base image can not currently be upgraded
 | |
| # without users needing a manual pgdump and restore.
 | |
| FROM postgres:9.5
 | |
| RUN apt-get update \
 | |
|     && DEBIAN_FRONTEND=noninteractive apt-get install -y \
 | |
|         postgresql-server-dev-$PG_MAJOR \
 | |
|         postgresql-server-dev-all \
 | |
|         git \
 | |
|         build-essential \
 | |
|         fakeroot \
 | |
|         devscripts
 | |
| RUN git clone https://github.com/zulip/tsearch_extras.git \
 | |
|     && cd tsearch_extras \
 | |
|     && echo $PG_MAJOR > debian/pgversions \
 | |
|     && pg_buildext updatecontrol \
 | |
|     && debuild -b -uc -us
 | |
| 
 | |
| # Install tsearch_extras, hunspell, zulip stop words, and run zulip database
 | |
| # init.
 | |
| FROM postgres:9.5
 | |
| ENV TSEARCH_EXTRAS_VERSION=0.4
 | |
| ENV TSEARCH_EXTRAS_DEB=postgresql-${PG_MAJOR}-tsearch-extras_${TSEARCH_EXTRAS_VERSION}_amd64.deb
 | |
| COPY --from=0 /${TSEARCH_EXTRAS_DEB} /tmp
 | |
| COPY puppet/zulip/files/postgresql/zulip_english.stop /usr/share/postgresql/$PG_MAJOR/tsearch_data/zulip_english.stop
 | |
| COPY scripts/setup/postgres-create-db /docker-entrypoint-initdb.d/postgres-create-db.sh
 | |
| RUN apt-get update \
 | |
|     && DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y hunspell-en-us \
 | |
|     && DEBIAN_FRONTEND=noninteractive dpkg -i /tmp/${TSEARCH_EXTRAS_DEB} \
 | |
|     && rm /tmp/${TSEARCH_EXTRAS_DEB} \
 | |
|     && ln -sf /var/cache/postgresql/dicts/en_us.dict "/usr/share/postgresql/$PG_MAJOR/tsearch_data/en_us.dict" \
 | |
|     && ln -sf /var/cache/postgresql/dicts/en_us.affix "/usr/share/postgresql/$PG_MAJOR/tsearch_data/en_us.affix" \
 | |
|     && rm -rf /var/lib/apt/lists/*
 |