Skip to content

Commit 684f5e4

Browse files
Merge pull request #1617 from ucfopen/issue/1616-run-first-script-updates
Docker image management updates + run_first script improvements
2 parents 978f98b + dc4efda commit 684f5e4

File tree

3 files changed

+50
-21
lines changed

3 files changed

+50
-21
lines changed

.github/workflows/test_and_build.yml

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -36,17 +36,32 @@ jobs:
3636
touch .env.local
3737
fi
3838
39-
- name: Build App Image
39+
- name: Build App and Webserver Images
4040
run: |
4141
cd docker
42-
docker compose build --no-cache webserver app
42+
docker compose build --no-cache webserver app fakes3
4343
44-
- name: Push App Images
44+
- name: Push Dev App and Webserver Images
45+
if: ${{ startsWith(github.ref, 'refs/tags/v') && (contains(github.ref, '-alpha') || contains(github.ref, '-rc')) }}
4546
run: |
46-
docker tag ucfopen/materia:app-dev ghcr.io/${{ github.repository_owner }}/materia:app-${{ github.sha }}
47-
docker tag ucfopen/materia:app-dev ghcr.io/${{ github.repository_owner }}/materia:app-${{ steps.tag_name.outputs.GIT_TAG }}
48-
docker tag ucfopen/materia:webserver-dev ghcr.io/${{ github.repository_owner }}/materia:webserver-${{ github.sha }}
49-
docker tag ucfopen/materia:webserver-dev ghcr.io/${{ github.repository_owner }}/materia:webserver-${{ steps.tag_name.outputs.GIT_TAG }}
47+
docker push ghcr.io/${{ github.repository_owner }}/materia:app-dev
48+
docker push ghcr.io/${{ github.repository_owner }}/materia:webserver-dev
49+
docker push ghcr.io/${{ github.repository_owner }}/materia:fake-s3-dev
50+
51+
- name: Push Stable App and Webserver Images
52+
if: ${{ startsWith(github.ref, 'refs/tags/v') && !contains(github.ref, '-alpha') && !contains(github.ref, '-rc') }}
53+
run: |
54+
docker tag ghcr.io/${{ github.repository_owner }}/materia:app-dev ghcr.io/${{ github.repository_owner }}/materia:app-stable
55+
docker tag ghcr.io/${{ github.repository_owner }}/materia:webserver-dev ghcr.io/${{ github.repository_owner }}/materia:webserver-stable
56+
docker push ghcr.io/${{ github.repository_owner }}/materia:app-stable
57+
docker push ghcr.io/${{ github.repository_owner }}/materia:webserver-stable
58+
59+
- name: Push Versioned App and Webserver Images
60+
run: |
61+
docker tag ghcr.io/${{ github.repository_owner }}/materia:app-dev ghcr.io/${{ github.repository_owner }}/materia:app-${{ github.sha }}
62+
docker tag ghcr.io/${{ github.repository_owner }}/materia:app-dev ghcr.io/${{ github.repository_owner }}/materia:app-${{ steps.tag_name.outputs.GIT_TAG }}
63+
docker tag ghcr.io/${{ github.repository_owner }}/materia:webserver-dev ghcr.io/${{ github.repository_owner }}/materia:webserver-${{ github.sha }}
64+
docker tag ghcr.io/${{ github.repository_owner }}/materia:webserver-dev ghcr.io/${{ github.repository_owner }}/materia:webserver-${{ steps.tag_name.outputs.GIT_TAG }}
5065
docker push ghcr.io/${{ github.repository_owner }}/materia:app-${{ github.sha }}
5166
docker push ghcr.io/${{ github.repository_owner }}/materia:app-${{ steps.tag_name.outputs.GIT_TAG }}
5267
docker push ghcr.io/${{ github.repository_owner }}/materia:webserver-${{ github.sha }}
@@ -70,7 +85,7 @@ jobs:
7085
overwrite: true
7186

7287
- name: Upload to Pre-Release
73-
if: ${{ startsWith(github.ref, 'refs/tags/v') && contains(github.ref, '-alpha') && contains(github.ref, '-rc') }}
88+
if: ${{ startsWith(github.ref, 'refs/tags/v') && contains(github.ref, '-alpha') || contains(github.ref, '-rc') }}
7489
uses: svenstaro/upload-release-action@v2
7590
with:
7691
repo_token: ${{ secrets.GITHUB_TOKEN }}

docker/docker-compose.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ version: '3.5'
22

33
services:
44
webserver:
5-
image: ucfopen/materia:webserver-dev
5+
image: ghcr.io/ucfopen/materia:webserver-dev
66
build:
77
context: ../
88
dockerfile: materia-webserver.Dockerfile
@@ -16,7 +16,7 @@ services:
1616
- app
1717

1818
app:
19-
image: ucfopen/materia:app-dev
19+
image: ghcr.io/ucfopen/materia:app-dev
2020
build:
2121
context: ../
2222
dockerfile: materia-app.Dockerfile
@@ -52,7 +52,7 @@ services:
5252
- backend
5353

5454
mysql:
55-
image: mysql:5.7.34
55+
image: mysql:8.0.32
5656
platform: linux/amd64
5757
ports:
5858
- "3306:3306" # allow mysql access from the host - use /etc/hosts to set mysql to your docker-machine ip
@@ -67,7 +67,7 @@ services:
6767
- backend
6868

6969
fakes3:
70-
image: ucfopen/materia:fake-s3-dev
70+
image: ghcr.io/ucfopen/materia:fake-s3-dev
7171
build:
7272
context: ../
7373
dockerfile: materia-fake-s3.Dockerfile

docker/run_first.sh

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,27 @@ rm -rf ./config/nginx/cert.pem
2323
# generate a self-signed ssl cert
2424
openssl req -subj '/CN=localhost' -x509 -newkey rsa:4096 -nodes -keyout ./config/nginx/key.pem -out ./config/nginx/cert.pem -days 365
2525

26-
# quietly pull any docker images we can
27-
docker compose pull --ignore-pull-failures
26+
echo "To setup Materia locally, you can choose to pull pre-packaged images or build from source"
27+
echo "1. Pull app and webserver images (recommended if you just want to run Materia locally with no dev)"
28+
echo "2. Build images from source (recommended if you're actively developing Materia)"
29+
read -p "Enter an option (1 or 2): " choice
2830

29-
# install php composer deps
30-
docker compose run --rm --no-deps app composer install --ignore-platform-reqs
31+
if [ "$choice" == "1" ]; then
32+
echo "Pulling containers..."
33+
# quietly pull any docker images we can
34+
docker compose pull
35+
36+
37+
elif [ "$choice" == "2" ]; then
38+
echo "Building containers. This will take a few minutes..."
39+
docker compose build app webserver fakes3
40+
41+
# install php composer deps
42+
docker compose run --rm --no-deps app composer install --ignore-platform-reqs
43+
else
44+
echo "Invalid choice. Try again."
45+
exit 1
46+
fi
3147

3248
# run migrations and seed any db data needed for a new install
3349
docker compose run --rm app /wait-for-it.sh mysql:3306 --timeout=120 --strict -- composer oil-install-quiet
@@ -38,12 +54,10 @@ docker compose run --rm app bash -c 'php oil r widget:install_from_config'
3854
# Install any widgets in the tmp dir
3955
source run_widgets_install.sh '*.wigt'
4056

41-
# build all the js/css assets
42-
source run_build_assets.sh
43-
4457
# create a dev user based on your current shell user (password will be 'kogneato') MATERIA_DEV_PASS=whatever can be used to set a custom pw
4558
source run_create_me.sh
4659

4760
echo -e "Materia will be hosted on \033[32m$DOCKER_IP\033[0m"
48-
echo -e "\033[1mRun an oil comand:\033[0m ./run.sh php oil r widget:show_engines"
49-
echo -e "\033[1mRun the web app:\033[0m docker compose up"
61+
echo -e '\033[1mRun an oil comand:\033[0m ./run.sh php oil r widget:show_engines'
62+
echo -e '\033[1mRun the web app:\033[0m docker compose up'
63+
echo -e 'Doing local dev? Be sure to \033[1myarn install\033[0m and \033[1myarn dev\033[0m to run the local webpack dev server'

0 commit comments

Comments
 (0)