Tom Stanton Youtube creator has build an engine that runs with air,but not an engine that works with air-tight piston, he added a rubber membrane and a clever valve system to create a diaphragm air engine.
A round rubber diaphragm with a hole in the center creates a seal with the piston at the top of its stroke. A brass sleeve and pin protrude through the diaphragm, and the sleeve seals create a plug with an o-ring, while the pin pushes open a ball which acts as the inlet valve to pressurize an intermediate chamber.
As the piston retracts, the ball closes the inlet valve, the outlet valve of the intermediate chamber is opened, forcing the diaphragm to push against the piston. The seal between the piston and diaphragm holds until the piston reaches its bottom position, where the pressurized air is vented past the piston and out through the gearbox. For full details see the video after the break.
The author of the video, Tom Stanton has published in his thingiverse account the stl files necessary to print the parts, as well as a list of materials for the rest of the necessary parts. Do not pressurise this engine without carrying out safe pressure tests. 3D print qualities vary and will not guarantee that the bottle cap/cylinder head can cope with high pressures.