-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 1605aa0
Showing
4 changed files
with
323 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,183 @@ | ||
# Created by https://www.gitignore.io/api/vim,osx,emacs,linux,windows,sublimetext,visualstudiocode | ||
# Edit at https://www.gitignore.io/?templates=vim,osx,emacs,linux,windows,sublimetext,visualstudiocode | ||
|
||
### Emacs ### | ||
# -*- mode: gitignore; -*- | ||
*~ | ||
\#*\# | ||
/.emacs.desktop | ||
/.emacs.desktop.lock | ||
*.elc | ||
auto-save-list | ||
tramp | ||
.\#* | ||
|
||
# Org-mode | ||
.org-id-locations | ||
*_archive | ||
|
||
# flymake-mode | ||
*_flymake.* | ||
|
||
# eshell files | ||
/eshell/history | ||
/eshell/lastdir | ||
|
||
# elpa packages | ||
/elpa/ | ||
|
||
# reftex files | ||
*.rel | ||
|
||
# AUCTeX auto folder | ||
/auto/ | ||
|
||
# cask packages | ||
.cask/ | ||
dist/ | ||
|
||
# Flycheck | ||
flycheck_*.el | ||
|
||
# server auth directory | ||
/server/ | ||
|
||
# projectiles files | ||
.projectile | ||
|
||
# directory configuration | ||
.dir-locals.el | ||
|
||
# network security | ||
/network-security.data | ||
|
||
|
||
### Linux ### | ||
|
||
# temporary files which can be created if a process still has a handle open of a deleted file | ||
.fuse_hidden* | ||
|
||
# KDE directory preferences | ||
.directory | ||
|
||
# Linux trash folder which might appear on any partition or disk | ||
.Trash-* | ||
|
||
# .nfs files are created when an open file is removed but is still being accessed | ||
.nfs* | ||
|
||
### OSX ### | ||
# General | ||
.DS_Store | ||
.AppleDouble | ||
.LSOverride | ||
|
||
# Icon must end with two \r | ||
Icon | ||
|
||
# Thumbnails | ||
._* | ||
|
||
# Files that might appear in the root of a volume | ||
.DocumentRevisions-V100 | ||
.fseventsd | ||
.Spotlight-V100 | ||
.TemporaryItems | ||
.Trashes | ||
.VolumeIcon.icns | ||
.com.apple.timemachine.donotpresent | ||
|
||
# Directories potentially created on remote AFP share | ||
.AppleDB | ||
.AppleDesktop | ||
Network Trash Folder | ||
Temporary Items | ||
.apdisk | ||
|
||
### SublimeText ### | ||
# Cache files for Sublime Text | ||
*.tmlanguage.cache | ||
*.tmPreferences.cache | ||
*.stTheme.cache | ||
|
||
# Workspace files are user-specific | ||
*.sublime-workspace | ||
|
||
# Project files should be checked into the repository, unless a significant | ||
# proportion of contributors will probably not be using Sublime Text | ||
# *.sublime-project | ||
|
||
# SFTP configuration file | ||
sftp-config.json | ||
|
||
# Package control specific files | ||
Package Control.last-run | ||
Package Control.ca-list | ||
Package Control.ca-bundle | ||
Package Control.system-ca-bundle | ||
Package Control.cache/ | ||
Package Control.ca-certs/ | ||
Package Control.merged-ca-bundle | ||
Package Control.user-ca-bundle | ||
oscrypto-ca-bundle.crt | ||
bh_unicode_properties.cache | ||
|
||
# Sublime-github package stores a github token in this file | ||
# https://packagecontrol.io/packages/sublime-github | ||
GitHub.sublime-settings | ||
|
||
### Vim ### | ||
# Swap | ||
[._]*.s[a-v][a-z] | ||
[._]*.sw[a-p] | ||
[._]s[a-rt-v][a-z] | ||
[._]ss[a-gi-z] | ||
[._]sw[a-p] | ||
|
||
# Session | ||
Session.vim | ||
|
||
# Temporary | ||
.netrwhist | ||
# Auto-generated tag files | ||
tags | ||
# Persistent undo | ||
[._]*.un~ | ||
|
||
### VisualStudioCode ### | ||
.vscode/* | ||
!.vscode/settings.json | ||
!.vscode/tasks.json | ||
!.vscode/launch.json | ||
!.vscode/extensions.json | ||
|
||
### VisualStudioCode Patch ### | ||
# Ignore all local history of files | ||
.history | ||
|
||
### Windows ### | ||
# Windows thumbnail cache files | ||
Thumbs.db | ||
ehthumbs.db | ||
ehthumbs_vista.db | ||
|
||
# Dump file | ||
*.stackdump | ||
|
||
# Folder config file | ||
[Dd]esktop.ini | ||
|
||
# Recycle Bin used on file shares | ||
$RECYCLE.BIN/ | ||
|
||
# Windows Installer files | ||
*.cab | ||
*.msi | ||
*.msix | ||
*.msm | ||
*.msp | ||
|
||
# Windows shortcuts | ||
*.lnk | ||
|
||
# End of https://www.gitignore.io/api/vim,osx,emacs,linux,windows,sublimetext,visualstudiocode |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
FROM ubuntu:bionic | ||
|
||
ENV DEBIAN_FRONTEND=noninteractive | ||
ENV PHP_VERSION=7.2 | ||
|
||
RUN apt-get update --quiet \ | ||
&& apt-get upgrade --quiet --yes \ | ||
&& apt-get install --quiet --yes \ | ||
composer \ | ||
libicu-dev \ | ||
libmariadbclient-dev \ | ||
libpng-dev \ | ||
libpq-dev \ | ||
libxml2-dev \ | ||
locales \ | ||
php${PHP_VERSION} \ | ||
php${PHP_VERSION}-bcmath \ | ||
php${PHP_VERSION}-bz2 \ | ||
php${PHP_VERSION}-cli \ | ||
php${PHP_VERSION}-common \ | ||
php${PHP_VERSION}-curl \ | ||
php${PHP_VERSION}-fpm \ | ||
php${PHP_VERSION}-gd \ | ||
php${PHP_VERSION}-imap \ | ||
php${PHP_VERSION}-imagick \ | ||
php${PHP_VERSION}-intl \ | ||
php${PHP_VERSION}-ldap \ | ||
php${PHP_VERSION}-mbstring \ | ||
php${PHP_VERSION}-mysql \ | ||
php${PHP_VERSION}-pgsql \ | ||
php${PHP_VERSION}-redis \ | ||
php${PHP_VERSION}-soap \ | ||
php${PHP_VERSION}-sqlite3 \ | ||
php${PHP_VERSION}-xml \ | ||
php${PHP_VERSION}-xmlrpc \ | ||
php${PHP_VERSION}-xsl \ | ||
php${PHP_VERSION}-zip \ | ||
unzip \ | ||
&& apt-get autoremove --quiet --yes \ | ||
&& apt-get clean | ||
|
||
# Set the locale | ||
RUN locale-gen en_US | ||
RUN locale-gen en_US.UTF-8 | ||
ENV LANG en_US.UTF-8 | ||
ENV LANGUAGE en_US:en | ||
ENV LC_ALL en_US.UTF-8 | ||
|
||
# Set timezone | ||
RUN rm /etc/localtime | ||
RUN ln -s /usr/share/zoneinfo/Europe/Zurich /etc/localtime | ||
|
||
EXPOSE 8000 | ||
|
||
# Mount your app source code directory into that folder | ||
WORKDIR /var/www/app | ||
|
||
# Create less privileged user | ||
RUN groupadd --gid 1000 dev \ | ||
&& useradd --uid 1000 --gid dev --shell /bin/bash --create-home dev | ||
|
||
# Label schema related variables and metadata | ||
ARG BUILD_DATE | ||
ARG VCS_REF | ||
|
||
LABEL maintainer="Julien M'Poy <[email protected]>" \ | ||
org.label-schema.build-date=${BUILD_DATE} \ | ||
org.label-schema.vcs-ref=${VCS_REF} \ | ||
org.label-schema.vcs-url="https://github.com/groovytron/php-container" \ | ||
org.label-schema.schema-version="1.0" | ||
|
||
# Fix permissions issues | ||
RUN chmod -R a+wrx /var/www/app |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
BUILD_NAME=php-container:latest | ||
CONTAINER_NAME=my-php-container | ||
|
||
.PHONY: all | ||
all: build | ||
|
||
.PHONY: build | ||
build: Dockerfile | ||
docker build \ | ||
--build-arg VCS_REF="$(shell git rev-parse HEAD)" \ | ||
--build-arg BUILD_DATE="$(shell date -u +"%Y-%m-%dT%H:%m:%SZ")" \ | ||
--tag $(BUILD_NAME) . | ||
|
||
.PHONY: run | ||
run: build | ||
docker run \ | ||
-it \ | ||
--entrypoint /bin/bash \ | ||
--name $(CONTAINER_NAME) \ | ||
--user=dev \ | ||
$(BUILD_NAME) | ||
|
||
.PHONY:jumpin | ||
jumpin: | ||
docker exec \ | ||
-it \ | ||
--user=dev \ | ||
$(CONTAINER_NAME) \ | ||
/bin/bash | ||
|
||
.PHONY:rootin | ||
rootin: | ||
docker exec \ | ||
-it \ | ||
--user=root \ | ||
$(CONTAINER_NAME) \ | ||
/bin/bash | ||
|
||
.PHONY:clean | ||
clean: | ||
docker image rm -f $(BUILD_NAME) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
# Docker container for PHP project | ||
|
||
Docker container allowing you to build and test your PHP project. | ||
|
||
## Softwares embedded in the container | ||
|
||
The following tools are embedded in the container: | ||
|
||
- PHP: *7.2.10* | ||
- Composer: *1.6.3* | ||
|
||
## Use the container | ||
|
||
We recommend you use the `dev` user instead of `root` when running that container. | ||
|
||
The container's working directory is `/var/www/app` so we advise you to mount your project directory onto this place. | ||
|
||
### Building the project interactively in the container | ||
|
||
To run the container and open a bash in your php project run the following command: | ||
|
||
`docker run -it --entrypoint /bin/bash --user=dev --volume=<path-to-your-php-project-directory>:/var/www/app groovytron/php:latest` | ||
|
||
## Improvements | ||
|
||
- [ ] Use an alpine php docker image to make the container image lighter |