Compare commits

...

8 Commits

Author SHA1 Message Date
Rob Greene c5098b013e Adding notes for working with Docker Hub 2022-03-06 16:25:47 -06:00
Rob Greene 049e4a362d Tweaking README. 2022-03-06 15:20:30 -06:00
Rob Greene b4841d7d4d Adding applesingle 'asu' utility. 2022-03-06 15:12:51 -06:00
Rob Greene b77510683f Adding bastools 'bt' and 'st'. 2022-03-06 15:08:06 -06:00
Rob Greene e2fea4eae3 Updating 'ac' and adding 'acx'. 2022-03-06 14:50:59 -06:00
Rob Greene f7028f5561 Bumping cc65 to 2.19. 2022-03-06 14:39:18 -06:00
A2 Geek 8cc4dab709
Merge pull request #2 from bman12three4/master
Add binutils to list of installed packages
2022-03-06 14:35:27 -06:00
Byron Lathi d879c70108 Add binutils to list of installed packages
binutils offers useful utilities, namely objcopy for me.
It is reasonable to assume others may need them as well.
2022-03-05 23:00:26 -06:00
7 changed files with 112 additions and 14 deletions

73
DOCKER-HUB.md Normal file
View File

@ -0,0 +1,73 @@
# Working notes for pushing images to Docker Hub
> Note: It appears that the personal accounts on Docker Hub no longer automatically build based on a Github repository being tagged. (Maybe they never did as it's been 4 years!)
## Login
```bash
$ docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: a2geek
Password:
WARNING! Your password will be stored unencrypted in /home/rob/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
```
## Built and Tag
This created the `latest` tag:
```bash
$ docker build -t a2geek/cc65-pipeline .
Sending build context to Docker daemon 135.2kB
Step 1/5 : FROM alpine:latest
---> e7d92cdc71fe
Step 2/5 : LABEL description="This is a cc65 Docker container intended to be used for build pipelines."
<snip>
---> 207cf150f1f0
Step 3/5 : ENV BUILD_DIR="/tmp" CC65_VERSION="V2.19" NULIB2_VERSION="v3.1.0" AC_VERSION="1.7.0" BASTOOLS_VERSION="0.3.1" ASU_VERSION="1.2.1"
<snip>
---> 06228100af88
Step 4/5 : COPY bin /usr/local/bin
<snip>
---> 0e009844ebc9
Step 5/5 : RUN a bunch of stuff
<snip>
---> 78d59c93b46b
Successfully built 78d59c93b46b
Successfully tagged a2geek/cc65-pipeline:latest
```
... and this tagged it with the date:
```bash
$ docker tag 78d59c93b46b a2geek/cc65-pipeline:2022-03-06
```
Check:
```bash
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
a2geek/cc65-pipeline 2022-03-06 78d59c93b46b 31 minutes ago 238MB
a2geek/cc65-pipeline latest 78d59c93b46b 31 minutes ago 238MB
<none> <none> 8c7e891250c4 38 minutes ago 238MB
```
## Push to Docker Hub:
```bash
$ docker push a2geek/cc65-pipeline
The push refers to repository [docker.io/a2geek/cc65-pipeline]
d2d7d7253122: Pushed
e3169423110d: Pushed
5216338b40a7: Mounted from a2geek/concourse-image
2022-03-06: digest: sha256:48ab14d15ca474c1e28913e133a5edf2f30853a14936b27936772562cbb665f0 size: 947
d2d7d7253122: Layer already exists
e3169423110d: Layer already exists
5216338b40a7: Layer already exists
latest: digest: sha256:48ab14d15ca474c1e28913e133a5edf2f30853a14936b27936772562cbb665f0 size: 947
```

View File

@ -3,14 +3,15 @@ FROM alpine:latest
LABEL description="This is a cc65 Docker container intended to be used for build pipelines."
ENV BUILD_DIR="/tmp" \
CC65_VERSION="V2.17" \
CC65_VERSION="V2.19" \
NULIB2_VERSION="v3.1.0" \
AC_RELEASE="v1-4-0" \
AC_VERSION="1.4.0"
AC_VERSION="1.7.0" \
BASTOOLS_VERSION="0.3.1" \
ASU_VERSION="1.2.1"
COPY bin /usr/local/bin
RUN apk add --no-cache build-base && \
RUN apk add --no-cache build-base binutils && \
echo "Building CC65 ${CC65_VERSION}" && \
cd ${BUILD_DIR} && \
wget https://github.com/cc65/cc65/archive/${CC65_VERSION}.tar.gz && \
@ -31,14 +32,26 @@ RUN apk add --no-cache build-base && \
./configure && \
make && \
make install && \
echo "Adding AppleCommander" && \
wget https://github.com/AppleCommander/AppleCommander/releases/download/${AC_RELEASE}/AppleCommander-ac-${AC_VERSION}.jar && \
mkdir -p /usr/local/share/java && \
echo "Adding AppleCommander 'ac'" && \
wget https://github.com/AppleCommander/AppleCommander/releases/download/${AC_VERSION}/AppleCommander-ac-${AC_VERSION}.jar && \
mv AppleCommander-ac-${AC_VERSION}.jar /usr/local/share/java/AppleCommander-ac.jar && \
echo "Adding AppleCommander 'acx'" && \
wget https://github.com/AppleCommander/AppleCommander/releases/download/${AC_VERSION}/AppleCommander-acx-${AC_VERSION}.jar && \
mv AppleCommander-acx-${AC_VERSION}.jar /usr/local/share/java/AppleCommander-acx.jar && \
echo "Adding bastools 'bt'" && \
wget https://github.com/AppleCommander/bastools/releases/download/v${BASTOOLS_VERSION}/bastools-tools-bt-${BASTOOLS_VERSION}.jar && \
mv bastools-tools-bt-${BASTOOLS_VERSION}.jar /usr/local/share/java/bastools-bt.jar && \
echo "Adding bastools 'st'" && \
wget https://github.com/AppleCommander/bastools/releases/download/v${BASTOOLS_VERSION}/bastools-tools-st-${BASTOOLS_VERSION}.jar && \
mv bastools-tools-st-${BASTOOLS_VERSION}.jar /usr/local/share/java/bastools-st.jar && \
echo "Adding applesingle 'asu'" && \
wget https://github.com/AppleCommander/applesingle/releases/download/v${ASU_VERSION}/applesingle-tools-asu-${ASU_VERSION}.jar && \
mv applesingle-tools-asu-${ASU_VERSION}.jar /usr/local/share/java/applesingle-asu.jar && \
echo "Cleaning up" && \
cd ${BUILD_DIR} && \
rm -rf * && \
apk del --no-cache build-base && \
echo "Adding other required build-tools exclusive of other C compilers!" && \
apk add --no-cache make openjdk8-jre && \
apk add --no-cache make openjdk11-jre && \
chmod +x /usr/local/bin/*

View File

@ -1,12 +1,8 @@
# cc65 build agent
This Docker image is intended to be used in a build pipeline to build
6502/65c02/65816 projects. It is simply a blend of
[Alpine Linux](https://alpinelinux.org/) and
[cc65](http://cc65.github.io/cc65/).
In an effort to keep the image small, it currently only contains (beyond the base
Alpine Linux Docker image) `make` and `cc65`.
6502/65c02/65816 projects. It is based on
[Alpine Linux](https://alpinelinux.org/).
Note that most tools are installed into `/usr/local` in some capacity and
configured to be executed from there. You can always run `docker run -it a2geek/cc65-pipeline /bin/sh`
@ -22,8 +18,16 @@ to submit a pull request!
## Apple II
* [NuLib2](http://nulib.com/) to support creation of ShrinkIt archives.
* [cc65](http://cc65.github.io/cc65/) for C and assembly projects.
* [AppleCommander](https://applecommander.github.io/) to support creation of disk
images.
images. The following utilities are included:
* [ac](https://applecommander.github.io/ac/) to manipulate disk images.
* [acx](https://applecommander.github.io/acx/) to manipulate disk images (alternate to 'ac').
* [bt](https://github.com/AppleCommander/bastools/blob/master/tools/bt/README.md) to transform an AppleSoft program from text back to its tokenized state.
* [st](https://github.com/AppleCommander/bastools/blob/master/tools/st/README.md) is a utility to manage AppleSoft shape tables.
* [asu](https://github.com/AppleCommander/applesingle/blob/master/tools/asu/README.md) to support manipulation of AppleSingle files.
* From the Alpine packages:
* [binutils](https://www.gnu.org/software/binutils/)
# Samples

2
bin/acx Normal file
View File

@ -0,0 +1,2 @@
#!/bin/sh
java -jar /usr/local/share/java/AppleCommander-acx.jar "${@}"

2
bin/asu Normal file
View File

@ -0,0 +1,2 @@
#!/bin/sh
java -jar /usr/local/share/java/applesingle-asu.jar "${@}"

2
bin/bt Normal file
View File

@ -0,0 +1,2 @@
#!/bin/sh
java -jar /usr/local/share/java/bastools-bt.jar "${@}"

2
bin/st Normal file
View File

@ -0,0 +1,2 @@
#!/bin/sh
java -jar /usr/local/share/java/bastools-st.jar "${@}"