Skip to content

Commit 106f7f2

Browse files
authored
Merge pull request #49 from devaslanphp/master
Merge master into dev
2 parents 644fa75 + 9c152db commit 106f7f2

10 files changed

Lines changed: 170 additions & 0 deletions

File tree

.dockerignore

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
.github
2+
docs/
3+
github-contents/
4+
tests/
5+
.gitattributes
6+
.gitignore
7+
buildDocker.sh
8+
docker-compose.yml
9+
readme-logo.png
10+
README.md
11+

.gitattributes

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,5 @@
99
/.github export-ignore
1010
CHANGELOG.md export-ignore
1111
.styleci.yml export-ignore
12+
13+
run.sh text eol=lf

.github/workflows/docker-image.yml

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
name: Docker Image CI
2+
3+
on:
4+
push:
5+
tags:
6+
- 'v*.*.*'
7+
8+
jobs:
9+
10+
build:
11+
12+
runs-on: ubuntu-latest
13+
14+
steps:
15+
- uses: actions/checkout@v3
16+
- name: Docker login
17+
env:
18+
DOCKER_USER: ${{secrets.DOCKER_USER}}
19+
DOCKER_PASSWORD: ${{secrets.DOCKER_PASSWORD}}
20+
run: |
21+
docker login -u $DOCKER_USER -p $DOCKER_PASSWORD
22+
- name: Get repository release tag
23+
id: timeseries
24+
uses: pozetroninc/github-action-get-latest-release@master
25+
with:
26+
excludes: prerelease, draft
27+
repository: ${{ github.repository }}
28+
- name: Build Docker image
29+
run: |
30+
docker build --network=host -t ${{secrets.DOCKER_USER}}/helper:latest -t ${{secrets.DOCKER_USER}}/helper:${{ steps.timeseries.outputs.release }} .
31+
- name: Docker push image
32+
run: |
33+
docker push ${{secrets.DOCKER_USER}}/helper
34+
docker push ${{secrets.DOCKER_USER}}/helper:${{ steps.timeseries.outputs.release }}

Dockerfile

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# syntax=docker/dockerfile:1
2+
3+
#Deriving the latest base image
4+
FROM node:16.17.0-bullseye-slim
5+
6+
# Any working directory can be chosen as per choice like '/' or '/home' etc
7+
WORKDIR /app
8+
9+
COPY .env.example .env
10+
11+
COPY . .
12+
13+
RUN apt-get update -y && \
14+
apt-get install -y --no-install-recommends software-properties-common gnupg2 wget && \
15+
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/sury-php.list && \
16+
wget -qO - https://packages.sury.org/php/apt.gpg | apt-key add - && \
17+
apt-get update -y && \
18+
apt-get install -y --no-install-recommends php8.1 php8.1-curl php8.1-xml php8.1-zip php8.1-gd php8.1-mbstring php8.1-mysql && \
19+
apt-get update -y && \
20+
apt-get install -y composer && \
21+
composer update && \
22+
composer install && \
23+
npm install && \
24+
php artisan key:generate && \
25+
rm -rf /var/lib/apt/lists/*
26+
27+
CMD [ "bash", "./run.sh"]

README.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@
1919
<a href="https://devaslanphp.github.io/project-management" title="Go to project documentation">
2020
<img src="https://img.shields.io/badge/view-Documentation-blue?style=for-the-badge" alt="view - Documentation">
2121
</a>
22+
<br/>
23+
<a href="https://hub.docker.com/r/eloufirhatim/helper/tags" title="Docker image">
24+
<img src="https://img.shields.io/docker/v/eloufirhatim/helper?label=Docker&logo=docker&style=for-the-badge" alt="Docker image">
25+
</a>
2226
</p>
2327

2428
# Introduction
@@ -130,6 +134,9 @@ The MIT License (MIT). Please see [License File](LICENSE.md) for more informatio
130134
- **Release 1.2.1**
131135
- Add jira integration #36
132136
- New feature: Import jira projects / tickets
137+
- **Release 1.2.2**
138+
- Add jira integration #36
139+
- New feature: Import jira projects / tickets
133140

134141
## Support us
135142

buildDocker.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
docker build --network=host -t devaslanphp/helper:latest .

docker-compose.yml

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
version: "3.3"
2+
3+
volumes:
4+
mysql_data:
5+
6+
services:
7+
sqldb:
8+
image: mysql:5.7
9+
container_name: helper-mysql
10+
volumes:
11+
- mysql_data:/var/lib/mysql
12+
environment:
13+
- MYSQL_DATABASE=helper
14+
- MYSQL_USER=helper
15+
- MYSQL_PASSWORD=helper
16+
- MYSQL_ROOT_PASSWORD=helper
17+
command: --default-storage-engine innodb
18+
restart: unless-stopped
19+
healthcheck:
20+
test: mysqladmin -p$$MYSQL_ROOT_PASSWORD ping -h localhost
21+
interval: 20s
22+
start_period: 10s
23+
timeout: 10s
24+
retries: 3
25+
helper:
26+
image: devaslanphp/helper:latest
27+
container_name: helper-server
28+
environment:
29+
- DB_CONNECTION=mysql
30+
- DB_HOST=sqldb
31+
- DB_PORT=3306
32+
- DB_DATABASE=helper
33+
- DB_USERNAME=helper
34+
- DB_PASSWORD=helper
35+
- MAIL_MAILER=smtp
36+
- MAIL_HOST=smtp.mailtrap.io
37+
- MAIL_PORT=2525
38+
- MAIL_USERNAME=your_username
39+
- MAIL_PASSWORD=your_password
40+
- MAIL_ENCRYPTION=tls
41+
depends_on:
42+
- sqldb
43+
restart: "no"
44+
ports:
45+
- 8000:8000
46+
volumes:
47+
- /etc/localtime:/etc/localtime

docs/_sidebar.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,6 @@
1414
- [Projects configuration](/customization?id=projects-configuration)
1515
- [Tickets configuration](/customization?id=tickets-configuration)
1616
- [Social authentication](/customization?id=social-authentication)
17+
- [Docker](/docker?id=docker)
18+
- [Build image locally](/docker?id=build-image-locally)
19+
- [Use the Docker hub image](/docker?id=use-the-docker-hub-image)

docs/docker.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# Docker
2+
3+
The application is available as a Docker image too, and can be used in 2 ways:
4+
5+
## Build image locally
6+
7+
You can build the image locally in your development environment, by using the **Docker** files in the project root.
8+
9+
To build the docker image you can execute the following command:
10+
11+
```bash
12+
docker build --network=host -t devaslanphp/helper:latest .
13+
```
14+
15+
After the image is created in your docker, you can use the following command to construct your docker container:
16+
17+
```bash
18+
docker-compose up -d
19+
```
20+
21+
This will create a docker container for you in a daemon mode.
22+
23+
> This command uses the file `docker-compose.yml` existing in the project root folder, so before executing the `docker-compose` you need to update the environment variable in this folder.
24+
25+
## Use the Docker hub image
26+
27+
You can use the docker hub image instead of building the image locally [https://hub.docker.com/r/eloufirhatim/helper](https://hub.docker.com/r/eloufirhatim/helper).
28+
29+
> You can refer to the `docker-compose.yml` file to have an example how to use the hub image instead of the local image
30+
31+
> Important: The docker hub image is pushed automatically after a new release tag is created in the repository

run.sh

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
#!/bin/bash
2+
php artisan queue:work &
3+
php artisan migrate
4+
php artisan db:seed
5+
npm run build
6+
php artisan optimize:clear
7+
php artisan serve --host 0.0.0.0

0 commit comments

Comments
 (0)