mirror of
				https://github.com/koalaman/shellcheck.git
				synced 2025-11-04 18:28:23 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			55 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
FROM mitchty/alpine-ghc:latest
 | 
						|
 | 
						|
MAINTAINER Nikyle Nguyen <NLKNguyen@MSN.com>
 | 
						|
 | 
						|
RUN apk add --no-cache build-base
 | 
						|
 | 
						|
RUN mkdir -p /usr/src/shellcheck
 | 
						|
WORKDIR /usr/src/shellcheck
 | 
						|
 | 
						|
# # ------------------------------------------------------------
 | 
						|
# # Build & Test
 | 
						|
# # ------------------------------------------------------------
 | 
						|
 | 
						|
# Obtain the dependencies first, which are less likely to change, in order to reduce
 | 
						|
# subsequent build time by leveraging image cache. This benefits developers when they
 | 
						|
# build their code with this image locally. In case of Travis CI, this doesn't help
 | 
						|
# reduce building time because Travis CI doesn't use cache.
 | 
						|
COPY ShellCheck.cabal .
 | 
						|
RUN cabal update && cabal install --only-dependencies
 | 
						|
 | 
						|
# Copy the rest of the source files, including ShellCheck.cabal again but doesn't matter
 | 
						|
COPY . .
 | 
						|
 | 
						|
# Build
 | 
						|
RUN cabal install
 | 
						|
 | 
						|
# Test
 | 
						|
RUN cabal test
 | 
						|
 | 
						|
# # ------------------------------------------------------------
 | 
						|
# # Set PATH
 | 
						|
# # ------------------------------------------------------------
 | 
						|
 | 
						|
# Add runtime path to easily reach the executable file. This only exists during build.
 | 
						|
ENV PATH "/root/.cabal/bin:$PATH"
 | 
						|
 | 
						|
# Make it permanent for someone who login to the container of this image
 | 
						|
RUN echo "export PATH=${PATH}" >>  /etc/profile
 | 
						|
 | 
						|
# # ------------------------------------------------------------
 | 
						|
# # Extract Binaries
 | 
						|
# # ------------------------------------------------------------
 | 
						|
 | 
						|
# Get shellcheck binary
 | 
						|
RUN mkdir -p /package/bin/
 | 
						|
RUN cp $(which shellcheck) /package/bin/
 | 
						|
 | 
						|
# Get shared libraries using magic
 | 
						|
RUN mkdir -p /package/lib/
 | 
						|
RUN ldd $(which shellcheck) | grep "=> /" | awk '{print $3}' | xargs -I '{}' cp -v '{}' /package/lib/
 | 
						|
 | 
						|
 | 
						|
# Copy shellcheck package out to mounted directory
 | 
						|
CMD ["cp", "-avr", "/package", "/mnt/"]
 |